3. 使用依赖注入

这篇博客介绍了如何在EF Core中利用依赖注入来管理数据库连接,特别是使用C#的依赖注入框架来实例化DbContext并操作SQL Server。示例展示了BooksService类如何通过构造函数注入接收BooksContext,并在InitializeServices方法中配置服务生命周期。应用程序通过IServiceProvider获取BooksService实例,实现了添加和读取数据库记录的功能。此外,还展示了如何通过AddLogging扩展方法和ConfigureLogging方法添加日志记录,使得EF Core的日志输出到控制台。
摘要由CSDN通过智能技术生成

EF Core内置了对依赖注入的支持。使用EF Core和依赖注入容器也得到了有力的支持。它不是定义连接并利用DbContext派生类来使用SQL Server,而是使用依赖注入框架来连接和SQL Server选项。

为了看到其操作,前面的示例用BooksSampleWithDI示例项目进行修改。

BooksContext类现在看起来要简单的多,只是定义Books属性:

    public class BooksContext: DbContext
    {
        public BooksContext(DbContextOptions<BooksContext> options)
            : base(options) { }
        public DbSet<Book> Books { get; set; }
    }

BooksService是利用BooksContext的新类。在这里,BooksContext通过构造函数注入功能来注入。方法AddBooksAsync和ReadBooksAsync非常类似于前面的示例,但是它们使用BooksService类的上下文成员,而不是创建一个新的上下文:

    public class BooksService
    {
        private readonly BooksContext _booksContext;
        public BooksService(BooksContext bookContext) =>
            _booksContext = bookContext;
        public async Task AddBoksAsync()
        {
            Book[] books =
                {
                    new Book
                    {
                        Title = "Professional C# 6 and .NET Core 1.0",
                        Publisher = "Wrox Press"
                    },
                    new Book
                    {
                        Title = "Professional C# 5 and .NET 4.5.1",
                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值