OnModelCreating没有被调用

时间:2011-06-27 22:41:56

标签: c# entity-framework-4

我已经将我的一台机器设置为拥有Sql Server 2008 R2并将我当前的数据库放入其中。

然后我在app.config中设置了一个连接字符串,如下所示:

<add name="connectionString" connectionString="metadata=res://*;provider=System.Data.SqlClient;provider connection string=&quot;Data Source=localhost;Initial Catalog=MyDb;Integrated Security=True;&quot;" providerName="System.Data.EntityClient" />

然后在我的上下文构造函数中我有:

public MyDbContext()
    : base("connectionString")
{
}

当我这样做时,OnModelCreating不会被调用。

如何告诉EntityFramework使用特定数据库而不是默认数据库。\ sqlexpress?

2 个答案:

答案 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" />