2

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

问题是,我需要应用程序能够从某个配置文件中获取数据库 SCHEMA,而不是始终使用“dbo”默认值。我试图在“OnModelCreating”重载方法中使用“ToTable”方法(因此我可以指定架构),但正如本文所说,因为我使用的是 DataBase First,所以不会调用该方法。

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

非常感谢提前!!!

4

1 回答 1

0

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

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

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

    }

    // DbSets ...
}

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

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

    }

    // DbSets ...
}

它会导致 EF 在您的本地计算机上使用 SQL Express 在您的 web.config 文件中创建一个新的连接字符串,名称为YourDbFileName,就像DefaultConnection最初创建的早期 Db 一样。

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

于 2013-07-26T03:11:33.787 回答