概述
.net core中用了不少的依赖注入,官方文档中也推荐使用。
这样使用依赖注入来管理ef对象,还是比较科学,比如想要单利就很简单了
1:删除方法
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
//#warning To protect potentially sensitive information in your connection string, you should move it out of source code. See http://go.microsoft.com/fwlink/?LinkId=723263 for guidance on storing connection strings.
optionsBuilder.UseSqlServer(@"Server=.;Database=Food;Trusted_Connection=True;");
}
2:添加方法
public FoodContext(DbContextOptions<FoodContext> options)
: base(options)
{
}
添加的是一个构造函数用于构造函数注入(这个方法在新版的时候会自动加入)
3:在startup.cs的ConfigureServices方法中添加依赖注入
public void ConfigureServices(IServiceCollection services)
{
// Add framework services.
services.AddMvc();
services.AddDbContext<FoodContext>(option => {
option.UseSqlServer("Data Source =.; Initial Catalog = EFCore_dbfirst; User ID = sa; Password = sa.123");
});
}
注:usersqlserver是一个扩展方法,需要添加ef core的引用using Microsoft.EntityFrameworkCore;
4:使用的时候就不能直接去实例化了否则会报错找不到上下文对象
应该使用注入的方式去获取ef对象,例如构造函数注入
private CNBlog_ServerContext ef;
public ArticleDAL(CNBlog_ServerContext context) //通过依赖注入得到实例
{
ef = context;
}
但是如果你这个DAL类是直接实例化的ef也无法被成功的注入,因为你直接实例化调用的是无参的构造函数,
没有为他注入,所以我们应该使用依赖注入来注入对应的DAL类
private IArticleDAL _articledal;
public RelatedArticleController(IArticleDAL articledal) //通过依赖注入得到数据访问层实例
{
_articledal = articledal;
}
这样依赖注入在注入DAL层对应的类的时候发现该类还有一个需要注入的对象,就会被他自动注入了
当然注入的方式除了构造函数注入我们还可以使用其他的注入方式
最后
以上就是瘦瘦小兔子为你收集整理的Net Core使用依赖注入来装载EF的上下文对象的全部内容,希望文章能够帮你解决Net Core使用依赖注入来装载EF的上下文对象所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复