我正在为我的应用程序使用依赖项注入容器,包括我的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);