繁体   English   中英

何时在 DbContext 构造函数与 OnConfiguring 中提供 DbContextOptions?

[英]when to provide DbContextOptions in DbContext constructor vs OnConfiguring?

提供接受DbContextOptions<MyFileContext>DbContext构造函数与包括连接数据库的OnConfiguring方法有什么区别?

两者是等价的吗?

using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations.Schema;

using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.SqlServer;

namespace MyApp.Models
{
    public class MyDbContext : DbContext
    {
        // OPTION 1
        public MyDbContext(DbContextOptions<MyFileContext> options) : base(options)
        {
        }

        public DbSet<MyTable> MyTables { get; set; }

        // OPTION 2
        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            base.OnConfiguring(optionsBuilder);

            optionsBuilder.UseSqlServer(AppSettingsProvider.MySqlServerConnection);
        }

    }
}

两者是等价的吗?

情况很复杂。 (但理想情况下没有);

可以通过重写DbContextOptions方法通过构造函数参数在外部将OnConfiguring提供给DbContext

如果两者都使用, OnConfiguring最后应用,并且可以覆盖提供给构造函数参数的选项。

强调我的

参考配置 DbContext

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM