Создание базы данных SQL Server Express из модели Entity Framework 4 - PullRequest
6 голосов
/ 25 декабря 2010

Я могу автоматически сгенерировать файл SQL Server CE 4.0 * .sdf с использованием кода первого поколения, как объяснил Скотт Гатри здесь . Строка подключения для этого выглядит следующим образом:

<add name="NerdDinners" providerName="System.Data.SqlServerCe.4.0" 
connectionString="data  source=|DataDirectory|NerdDinner.sdf"/>

Однако, если я пытаюсь сгенерировать mdf вместо этого, используя следующую строку подключения, он не может сделать это со следующей ошибкой - «Поставщик не возвратил строку ProviderManifestToken.».

<add name="NerdDinners" providerName="System.Data.SqlClient" connectionString="data 
source=|DataDirectory|NerdDinner.mdf"/>

Даже непосредственное подключение к экземпляру SQLEXPRESS с использованием следующей строки подключения завершается ошибкой

<add name="NerdDinners" providerName="System.Data.SqlClient" connectionString="Data 
 Source=.\SQLEXPRESS;Initial Catalog=NerdDinner;Integrated Security=True"/>

Поддерживает ли EF 4 только SQL CE 4.0 для создания базы данных из модели на данный момент или я что-то здесь не так делаю?

Ответы [ 2 ]

4 голосов
/ 22 марта 2011

Мне удалось заставить эту строку подключения работать с SQL Express в том же учебном пособии.

<add name="NerdDinners" connectionString="Data Source=.\SQLEXPRESS; Initial Catalog=NerdDinners; AttachDbFilename=|DataDirectory|NerdDinners.mdf; Integrated Security=True; User Instance=True" providerName="System.Data.SqlClient" />

Надеюсь, это поможет кому-то в будущем.

1 голос
/ 10 июня 2011

В качестве примечания. Если вам не удается автоматически создать базу данных, это может быть связано с тем, что используемому пользователю базы данных не были предоставлены достаточные разрешения. Мне удалось просто перейти на Security экземпляра SQL (не в базу данных) и изменить Securables определенного имени входа, чтобы у него было разрешение на Create Any Database (я не сделал Предоставьте любые дополнительные права), и это позволит EF4 делать свое дело.

...