我已经将我的一台机器设置为拥有Sql Server 2008 R2并将我当前的数据库放入其中。
然后我在app.config中设置了一个连接字符串,如下所示:
<add name="connectionString" connectionString="metadata=res://*;provider=System.Data.SqlClient;provider connection string="Data Source=localhost;Initial Catalog=MyDb;Integrated Security=True;"" providerName="System.Data.EntityClient" />
然后在我的上下文构造函数中我有:
public MyDbContext()
: base("connectionString")
{
}
当我这样做时,OnModelCreating不会被调用。
如何告诉EntityFramework使用特定数据库而不是默认数据库。\ sqlexpress?
答案 0 :(得分:0)
好吧,我认为你没有正确地调用基础构造函数,你需要这样做:
public MyDbContext(string connectionString) : base(connectionString)
{
}
或者,如果您不想传递连接字符串,则需要使用现有的连接字符串变量:
static string connectionString = // your string here
public MyDbContext() : base(connectionString) { }
你想要实现整体目标,是否需要像这样覆盖ObjectContext?
EF引用的数据库是连接字符串数据源和初始目录属性中指定的数据库。 Data Source属性决定了要引用的sql实例。
答案 1 :(得分:0)
连接字符串不太正确。因为我正在使用流利的创建模型(我猜)。这是正确的连接字符串:
<add name="connectionString" connectionString="localhost;Initial Catalog=MyDb;Integrated Security=True" providerName="System.Data.SqlClient" />