yan*_*ski 6 c# asp.net-mvc entity-framework ef-code-first
我正在开发一个使用EF 4.1 Code First的ASP.NET MVC应用程序.
我必须将默认架构名称(dbo)更改为其他名称.
我试过这个:
public string SchemaName;
public void MyContext()
{
SchemaName = GetSchemaName();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
modelBuilder.Entity<Account>().ToTable("TB_ACC_HOLDERS", SchemaName);
}
Run Code Online (Sandbox Code Playgroud)
但它不起作用.当我获得我的Context的一个新实例并调用我的一些表时......生成的查询仍然带有"dbo"模式名称.
有人有想法解决这个问题吗?
在调试模式下几个小时后,我收到错误.
在构造函数中,我获取connectionString上的模式名称,并将值设置为属性(schemaName).
但是,当执行获取OnModelCreating()方法时,我的schemaName属性被设置为谁知道原因为NULL.
然后我将schemaName变量固定在方法的代码上.当我这样做时,一切都是正确的.
谢谢大家!
这里,代码:
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
//It works fine
var schemaName = "SYSTEM";
modelBuilder.Entity<Account>().ToTable("TB_ACC_HOLDERS", schemaName);
}
Run Code Online (Sandbox Code Playgroud)