EF4数据库首先是可配置的模式

时间:2013-07-15 16:28:50

标签: entity-framework-4 database-schema ef-database-first

我有一个问题,我现在试图解决几天,但我无法找到正确的方法。 我正在使用EF4,我有一个应用程序,我使用DataBase First,最初创建了ObjectContext,然后我下载了DbContext生成器并生成它。

问题是,我需要应用程序能够从某些配置文件中获取数据库SCHEMA,而不是总是使用“dbo”默认值。 我试图在“OnModelCreating”重载方法中使用“ToTable”方法(所以我可以指定模式)但是作为this article sais,因为我正在使用DataBase First,不会调用该方法。

如何使架构名称可配置? 这甚至可能吗? 我也阅读了this文章,其中说我可以先将数据库与代码结合起来,但如果我不能使用“OnModelCreating”方法,我就看不懂如何做到这一点。

提前多多感谢!!!

1 个答案:

答案 0 :(得分:0)

我不知道配置架构。但是,如果您希望首先将db的方法更改为代码,只需更改DbContext构造函数的字符串参数。

假设您拥有EF Db首次为您创建的以下DbContext:

public class MyDbContext : DbContext
{
    public MyDbContext()
        : base("Name=DefaultConnection")
    {

    }

    // DbSets ...
}

将其更改为以下内容以首先开始使用代码及其所有魔术工具(迁移等):

public class MyDbContext : DbContext
{
    public MyDbContext()
        : base("YourDbFileName")
    {

    }

    // DbSets ...
}

它导致EF在您的web.config文件中使用SQL Express在名称为YourDbFileName的文件中创建一个新的连接字符串,就像早期DefaultConnection Db首次创建一样。

您可能需要继续使用,是根据您的服务器和其他选项编辑YourDbFileName ConStr。