实体框架确保OnModelCreating被调用

时间:2018-07-02 14:48:28

标签: entity-framework

我正在为我的应用程序使用依赖项注入容器,包括我的EF数据库上下文。我最近发现没有调用OnModelCreating,因为我从未做过典型的 using(var contexnt = new MyContext)...僵尸。我的上下文的构造函数如下:

public UserAccessContext(string connectionString):base(connectionString)
        {
            this.connectionString = connectionString;
            Database.SetInitializer<UserAccessContext>(null);
        }

我的问题是在我的OnModelCreating中,我将一个没有合理命名的表(在控件之外)映射到域对象。 EF试图使用约定找出表名并猜测错误。如何继续使用DI来注入上下文的依赖关系,同时又确保将调用配置代码?

此应用程序是.NET核心应用程序,使用了.NET核心Web api的内置DI容器:

services.AddScoped<IUserAccessContext>(_ => new UserAccessContext(userAccessConnectinString));

OnModelCreating配置

var remediationAuditLogConfig = dbModelBuilder.Entity<RemediationAuditLog>()
                .ToTable("dbo.PoorlyNamedTable");
            remediationAuditLogConfig.HasKey(x => x.Id);

0 个答案:

没有答案