entity-framework-4 - EF4 数据库第一个可配置架构

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

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

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

如何使模式名称可配置? 这可能吗? 我读过this文章也说我可以首先将数据库与代码结合起来,但如果我不能使用“OnModelCreating”方法,我不知道如何做到这一点。

提前非常感谢!

最佳答案

我不知道如何配置架构。但是,如果您希望首先将数据库优先方法更改为代码,只需更改 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首先创建数据库。

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

关于entity-framework-4 - EF4 数据库第一个可配置架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17659119/

相关文章:

tsql - Entity Framework 4 : The selected stored procedure returns no columns

relational-database - 为什么我们使用维度模型而不是非规范化关系模型?

php - Web 应用程序 - 每个客户一个数据库还是所有客户一个数据库?

mysql - 用户组表架构

entity-framework - 为什么 Entity Framework 没有按要求注释一些不可为空的列?

entity-framework-4 - Entity Framework Code First 不生成数据库

entity-framework - 我如何在没有 App.config 的情况下使用 Entity Framework

asp.net-mvc - EF 数据库优先 - 向现有模型添加新模型

entity-framework-4.1 - Entity Framework 4.1 Database First 未向 DbContext T4 生成的类添加主键

c# - Linq OrderBy Count In 链表