这可能是一个连接字符串问题,但是我确实看到您正在尝试播种信息并在构造函数中完全使用上下文,我强烈建议您不要这样做。您可以实现OnModelCreating方法并在那里尝试您的初始化代码,甚至可以在应用程序启动时更好。似乎只是因为此时才开始初始化而被卡在构造函数中似乎并不对。
在上设置断点
如果(this.Database.Exists())
该行之后是否立即发生错误?如果是这样,请三遍检查您的连接字符串。您是否将代码包含在一个项目中,或者细分了?如果您恰好正在使用该设计,请确保检查的是根Web项目的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;



