我正在开发一个使用 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);
}
但它不起作用。当我获得我的上下文的新实例并调用我的一些表时......生成的查询仍然带有“dbo”架构名称。
有人知道如何解决这个问题吗?
最佳答案
在 Debug模式下几个小时后,我收到了错误。
在构造函数中,我在 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);
}
关于c# - 如何更改架构名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8215400/