我有一个问题几天来一直在尝试解决,但我找不到正确的方法。 我正在使用 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/