OnModelCreating not being called

本文关键字:called being not OnModelCreating | 更新日期: 2023-09-27 18:00:27

我已经将我的一台机器设置为具有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?

OnModelCreating not being called

首先,我认为你没有正确地调用基本构造函数,你需要这样做:

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

或者,如果你不想传入连接字符串,你需要使用一个现有的连接字符串变量:

static string connectionString =  // your string here
public MyDbContext() : base(connectionString) { }

但是,总的来说,您想要实现什么,是否需要像这样覆盖ObjectContext?

EF引用的数据库是在连接字符串"数据源"answers"初始目录"属性中指定的数据库。Data Source属性决定要引用哪个sql实例。

连接字符串不太正确。因为我正在使用fluent创建模型(我猜是这样)。这是正确的连接字符串:

<add name="connectionString" connectionString="localhost;Initial Catalog=MyDb;Integrated Security=True" providerName="System.Data.SqlClient" />