我有一个问题,我现在试图解决几天,但我无法找到正确的方法。 我正在使用EF4,我有一个应用程序,我使用DataBase First,最初创建了ObjectContext,然后我下载了DbContext生成器并生成它。
问题是,我需要应用程序能够从某些配置文件中获取数据库SCHEMA,而不是总是使用“dbo”默认值。 我试图在“OnModelCreating”重载方法中使用“ToTable”方法(所以我可以指定模式)但是作为this article sais,因为我正在使用DataBase First,不会调用该方法。
如何使架构名称可配置? 这甚至可能吗? 我也阅读了this文章,其中说我可以先将数据库与代码结合起来,但如果我不能使用“OnModelCreating”方法,我就看不懂如何做到这一点。
提前多多感谢!!!
答案 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。