我正在尝试使用代码优先的实体框架生成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效果最好,其他一切都给我带来麻烦,可能只是我.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。