繁体   English   中英

如何更改架构名称

[英]How to Change the Schema name

我正在开发一个使用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);
}

但它不起作用。 当我获得我的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);
}

暂无
暂无

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

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