我正在尝试使用代码优先实体框架生成 SQL Server Express 嵌入式数据库 (.mdf)。它曾经工作正常,但现在,我只是一遍又一遍地解决同样的错误,我无法确定问题所在。问题发生在初始化时,它永远挂起,如果您查看 Intellitrace,您会看到某种类型的 throw/catch 语句循环全部返回
“无法打开物理文件“c:\gt\aspnetdb.mdf”。操作系统错误 2:“2(无法检索此错误的文本。原因:1815”。无法附加文件“c:\gt\aspnetdb” .mdf" 作为数据库 'WikDb'。" (System.Data.SqlClient.SqlException)
更新在“无法打开物理文件....”之前,我现在也收到以下错误
列“InvariantName”被限制为唯一。值“System.Data.SqlClient”已经存在。
结束更新
这是我的 app.config
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SqlServerCe.4.0" />
<add name="Microsoft SQL Server Compact Data Provider 4.0"
invariant="System.Data.SqlServerCe.4.0"
description=".NET Framework Data Provider for Microsoft SQL Server Compact"
type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0"/>
</DbProviderFactories>
</system.data>
<connectionStrings>
<add name="WikDb"
connectionString="data source=.\SQLEXPRESS;Integrated Security=True;
database=WikDb;AttachDBFilename=c:\gt\aspnetdb.mdf;
User Instance=True"
providerName="System.Data.SqlClient" />
</connectionStrings>
</configuration>
这是我的初始化代码
Database.SetInitializer(new DbInitializer()); //DropCreateDatabaseAlways<WikDb> intializer
Database.DefaultConnectionFactory.CreateConnection( "WikDb" );
WikDb db = new WikDb();
db.Database.Initialize( true );
任何帮助表示赞赏
谢谢,