OnModelCreating не вызывается - PullRequest
1 голос
/ 28 июня 2011

Я установил на одном из моих компьютеров 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 голосов
/ 28 июня 2011

Строка подключения была не совсем правильной.Потому что я создаю модель с использованием свободного (я предполагаю).Это правильная строка подключения:

<add name="connectionString" connectionString="localhost;Initial Catalog=MyDb;Integrated Security=True" providerName="System.Data.SqlClient" />
0 голосов
/ 28 июня 2011

Ну, во-первых, я не думаю, что вы правильно вызываете базовый конструктор, вам нужно сделать это:

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

}

Или, если вы не хотите передавать строку подключения, вам нужно использовать существующую переменную строки подключения:

static string connectionString =  // your string here

public MyDbContext() : base(connectionString) { }

Чего же вы хотите добиться в целом, есть ли необходимость переопределить ObjectContext следующим образом?

База данных, на которую ссылается EF, указана в свойствах источника данных и исходного каталога строки подключения. Свойство Data Source определяет, на какой экземпляр sql ссылаться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...