Строка подключения SQL Server Express для кода Entity Framework сначала - PullRequest
38 голосов
/ 07 ноября 2010

Я работаю в Visual Web Developer 2010 Express и использую CTP-код Entity Framework.Я могу сделать это с новым SQL Server CE, но я не могу найти строку подключения для работы с SQL Server Express.

Этот, используя бета-версию SQL Server CE, работает нормально (база данных созданаи воссоздается при изменении модели).

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

Этот файл, скопированный из строки соединений aspnetdb,

<add name="TrempimModel"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
     AttachDBFilename=|DataDirectory|TrempimModel.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />

При запуске выдает следующее сообщение:

Невозможно завершить операцию.Поставляемый SqlConnection не указывает начальный каталог

Так как же заставить его работать с SQL Server Express?

1 Ответ

61 голосов
/ 07 ноября 2010

Проблема с вашей строкой подключения здесь:

<add name="TrempimModel"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
                       AttachDBFilename=|DataDirectory|aspnetdb.sdf;
                       User Instance=true"
     providerName="System.Data.SqlClient" />

Вы в основном определяете, к какому "серверу" вы подключаетесь - но вы не говорите, к какой базе данных внутри файла подключаться. Также - расширение файла для файлов базы данных SQL Server Express составляет .mdf (не .sdf - это SQL Server Compact Edition) - вам также необходимо это учитывать! опечатка, согласно комментарию OP ).

Вам необходимо определить дополнительный database=.... (или Initial Catalog=.....) в строке подключения:

<add name="TrempimModel"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;
                       database=YourDatabaseName;
                       AttachDBFilename=|DataDirectory|aspnetdb.mdf;
                       User Instance=true"
     providerName="System.Data.SqlClient" />

Тогда все должно работать нормально.

Для получения дополнительной информации и тонны образцов, посетите веб-сайт ConnectionStrings .

...