c# - 如何更改架构名称

标签 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);
}

但它不起作用。当我获得我的上下文的新实例并调用我的一些表时......生成的查询仍然带有“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/

相关文章:

asp.net-mvc - asp.net mvc - 整数字段的 optional/默认值

c# - 使用 MongoDB 更新内部列表

entity-framework - 当我只想要一个返回时,EntityFramework 4 返回所有列

c# - 无法将类型 '(float xpos, int, int)'隐式转换为 'UnityEngine.Vector3'

c# - WCF 方法搞砸了

c# - 如何根据一个 LINQ 查询的结果过滤另一个查询的结果?

javascript - 如何将启动 Bootstrap 模板添加到 asp.net mvc web 应用程序?

sql-server - MS SQL 自动递增非标识列

entity-framework - EF 6 未检索触发器更新字段

c# - 在 MVC4 中设置默认 Controller