2016-09-05 2 views
1

Я использую C# WPF EF6.0 и SQL Server Express для окончательной программы.Строка соединения C# Entity Framework SQL Server Express

Я создал файл настроек с помощью Advanced инсталлятор, который создает базу данных с помощью сценария и SQL Server Express в

C:\Program Files\Microsoft SQL Server\MSSQL11.SQLEXPRESS\MSSQL\DATA 

и я изменил свою строку соединения с

<add name="MyDBEntities" 
    connectionString="metadata=res://*/MyDBModel.csdl|res://*/MyDBModel.ssdl|res://*/MyDBModel.msl;provider=System.Data.SqlClient;provider connection string=&quot;data source=(LocalDB)\v11.0;attachdbfilename=|DataDirectory|\MyDB.mdf;integrated security=True;connect timeout=30;MultipleActiveResultSets=True;App=EntityFramework&quot;" 
    providerName="System.Data.EntityClient" /> 

Для этого

<add name="MyDBEntities" 
    connectionString="metadata=res://*/MyDBModel.csdl| 
         res://*/MyDBModel.ssdl| 
         res://*/MyDBModel.msl; 
         provider=System.Data.SqlClient; 
         provider connection string=&quot; 
          Data source=.\SQLExpress; 
          integrated security=True; 
          MultipleActiveResultSets=True; 
          Initial Catalog=MyDB; 
          App=EntityFramework&quot;" 
    providerName="System.Data.EntityClient" /> 

Я установил .net Framework 4.5 и SQL Server 2012 sp1 v11.0.300 th я использовал в Visual Studio 2013

Когда я устанавливаю свою программу, все работает, но когда я запускаю свою программу, она перестала работать при первом запуске. Я думаю, что строка подключения имеет проблему. Если я нажимаю отладки в Visual Studio, я вижу эту ошибку

Необработанное исключение типа «System.InvalidOperationException» имели место в информации EntityFramework.dll.Additional: Нет соединения строка с именем «MyDBEntities» может быть найдено в файл конфигурации приложения.

+0

Вы получаете какую-либо ошибку .. – Venky

+0

Нет, просто перестали работать – yasser93

+0

, если я нахожу щелчок на отлаживании в визуальном представлении этой ошибки. => В EntityFramework.dll произошло необработанное исключение типа «Исключение System.InvalidOperation». Дополнительная информация: Нет строки подключения имя «MyDBEntities» можно найти в файле конфигурации приложения. – yasser93

ответ

1

Наконец-то я не смог создать установочный файл с Advanced Installer. Но я создал его на Install Shield. Моя проблема заключалась в вставке или удалении или редактировании из базы данных. Я установил свою программу на другом диске, и моя проблема решена. Причина была шутка в том, что файлы программы в C - readonly.

1

Причина в том, что вы не привязали файлы базы данных к локальному движку базы данных. попробуйте использовать доступные методы SQL Server. Ваше приложение (после установки) не может найти базу данных в локальном БД.

+0

Как я это делаю ??? – yasser93

+0

Существуют разные способы: один из них может использовать sp_attach_db в SQL Server и писать процедуру, подумайте о том, что этот метод не должен находиться в движущейся базе данных. причина в том, что вы не привязали свою БД, чтобы не использовать ее процедуры. для получения дополнительной информации используйте https://msdn.microsoft.com/en-us/library/ms190794.aspx – Media

+0

могу ли я использовать attachdbfilename в моей строке Connection и указать это местоположение ?? => C: \ Program Files \ Microsoft SQL Server \ MSSQL11.SQLEXPRESS \ MSSQL \ DATA – yasser93