Вероятно, это проблема строки соединения, однако я вижу, что вы пытаетесь заполнить информацию и полностью использовать контекст в конструкторе, что я настоятельно рекомендую вам не делать.Вы можете реализовать метод OnModelCreating и попробовать там свой код инициализации или, что еще лучше, при запуске приложения.Просто кажется неправильным застрять в конструкторе, поскольку инициализация только начинается в этой точке.
Установить точку останова на
if (this.Database.Exists())
Произошла ли ошибка сразу после этой строки?Если это так, трижды проверьте строку подключения.У вас есть код в одном проекте, или выломаны?Убедитесь, что вы проверяете строку подключения в web.config вашего корневого веб-проекта, а не в app.config какого-либо компонента, если вам случается использовать этот дизайн.
Каждый раз, когда вы переходите от кода вначале и т. Д.вы меняете строку подключения?Строка подключения с первым кодом называется по имени вашего контекстного класса и проста:
<add name="UserDataBaseDB" connectionString="Data Source=|DataDirectory|test.sdf" providerName="System.Data.SqlServerCe.4.0" /%gt;
Это, конечно, с использованием SQLCe4.Sql Server будет
<add name="UserDataBaseDB" providerName="System.Data.SqlClient" connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=YourDbName;Integrated Security=True;Pooling=False" /%gt;
или для базы данных в app_Data
<add name="UserDataBaseDB" providerName="System.Data.SqlClient" connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\YourDatabase.mdf;User Instance=true" /%gt;