37

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

Этот, используя бета-версию 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?

ответ

59

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

<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.

+0

a) расширение sdf было опечаткой. Я использовал mdf в строке подключения - отредактировал вопрос, чтобы это отразить. предложение указать базу данных решило мою проблему - спасибо. Я использую то же имя, что и имя файла, - это правильно или может вызвать некоторые проблемы в строке? – GilShalit

+0

@GilShalit: это зависит от того, что действительно называется базой данных в вашем MDF; вероятность того, что это то же имя, что и имя файла. Вам нужно будет убедиться, что, присоединив MDF к полномасштабному экземпляру SQL Server и узнайте, что действительно хранится в базе данных, хранящейся в MDF. –

+0

, как вы, кажется, много знаете об этом, я не думаю, что если у вас есть момент, вы можете взглянуть на мой вопрос ... Я могу заставить строку подключения работать, но если я попытаюсь отредактировать/использовать базы данных, я получаю так много ошибок :(- http://stackoverflow.com/questions/5924553/entity-framework-error-connecting-to-sql-server-express-after-mounting-connecting and reposted to MSDN - http: //social.msdn.microsoft.com/Forums/en-US/adodotnetentityframework/thread/1ec3ff63-d8a1-4844-942d-c2c05ed8078e – Wil

Смежные вопросы