如何更改架构名称

本文关键字:何更改 | 更新日期: 2023-09-27 18:15:15

我正在开发一个ASP。. NET MVC应用,使用EF 4.1 Code First.

我必须将默认的模式名(dbo)更改为另一个名称。

我试过了:

public string SchemaName;
public void MyContext()
{
    SchemaName = GetSchemaName();
}
protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
    modelBuilder.Entity<Account>().ToTable("TB_ACC_HOLDERS", SchemaName);
}

但是它不起作用。当我得到一个Context的新实例并调用我的一些table ..生成的查询仍然使用"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);
}