c# – 使用SQL Server Express的Code-First;操作系统错误2

我正在尝试使用代码优先的实体框架生成SQL Server Express嵌入式数据库(.mdf).它过去工作正常,但现在,我只是反复出现同样的错误,我无法确定问题.问题发生在初始化,它只是永远挂起,如果你看intellitrace你可以看到某种循环的throw / catch语句全部返回

“Unable to open the physical file “c:\gt\aspnetdb.mdf”. Operating
system error 2: “2 (failed to retrieve text for this error. Reason:
1815”. Cannot attach the file “c:\gt\aspnetdb.mdf” as database
‘WikDb’.” (System.Data.SqlClient.SqlException)

UPDATE
我现在也在“无法打开物理文件……”之前收到以下错误.

Column ‘InvariantName’ is constrained to be unique. Value
‘System.Data.SqlClient’ is already present.

结束更新

这是我的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 );

任何帮助赞赏

谢谢,

最佳答案 看起来您的SQL Server实例已损坏.这通常会在经常安装其他实例时发生 – 如果使用Express版本,完整版本更容易安装和维护(如果您相信谷歌 – 或我的个人经验:P).最好的方法来查看是否可以在具有有效SQL Server实例的另一台计算机上运行您的应用程序.可以使用SSMS(SQL Server Management Studio)连接到数据库.如果没有,请尝试干净安装SQL Server.

更多信息:

> http://www.ureader.com/msg/11614770.aspx
> http://www.bigresource.com/Tracker/Track-ms_sql-UCk3FgDP/

编辑:我发现如果运行一个默认实例(名为SQLEXPRESS的那个),SQL Server Express效果最好,其他一切都给我带来麻烦,可能只是我.

点赞