我有一个问题几天来一直在努力解决,但我找不到正确的方法。我使用的是EF4,我有一个应用程序,我使用DataBaseFirst,它最初创建了ObjectContext,我加载了DbContext生成器并生成了它。
问题是,我需要应用程序能够从一些配置文件中获取数据库SCHEMA,而不是总是使用"dbo"默认值。我试图在"OnModelCreating"重载方法中使用"ToTable"方法(这样我就可以指定架构),但正如本文所说,由于我使用的是DataBaseFirst,所以没有调用该方法。
如何配置架构名称?这可能吗?我也读过这篇文章,文章中说我可以先将数据库和代码结合起来,但如果我不能使用"OnModelCreating"方法,我就看不到如何做到这一点。
提前感谢!!!
我不知道如何配置模式。但是,如果您希望将数据库优先方法更改为代码优先,只需更改DbContext构造函数的字符串参数即可。
假设您有以下DbContext,EF Db首先为您创建:
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。