实体框架 - Code First Bug

时间:2012-09-12 00:18:40

标签: entity-framework sql-server-express nuget-package

我正在使用代码优先使用DBContext并且没有配置文件(所有默认值)使用Entity Framework 5。我安装了默认实例.\SQLEXPRESS的SQL Server 2008 R2以及SQL Server 2012 Express LocalDB(localdb)\v11.0)。

框架似乎无法并排处理这些并在运行我的应用程序时抛出异常。我通过删除SQL Server 2012 Express LocalDB确认它工作正常。

一个有趣的观点是,当我运行NuGet在VS 2010或VS 2012中安装Entity Framework时,它会崩溃VS并且无法安装框架。我怀疑在两种情况下都使用类似的代码来查找/选择服务器。本文旨在引起实体框架团队的注意,而不一定在此解决。我很乐意提供团队可能需要的任何附加数据。

编辑 -

我发现可能会暴露NuGet的问题:

  

当您安装EF NuGet包时,默认连接工厂   已注册,指向SQL Express或LocalDb,具体取决于   你安装了哪一个。

1 个答案:

答案 0 :(得分:0)

由于帖子中没有足够的细节,很难判断它是否是EF错误。您同时拥有SqlExpress和LocalDB的方案应该可以使用。默认情况下,SqlExpress与VS2010一起安装,但VS2012没有,默认数据库解决方案是LocalDb。确实有一段代码可以检测到你的盒子上是否安装了SqlExpress,如果你这样做会相应地为你配置文件添加条目。如果您没有SqlExpress LocalDB,则应默认使用VS2012上的AFAIR。我在安装EF nuget包时从未见过VS崩溃。正如我上面所说 - 没有足够的细节来判断这是否是一个EF错误 - 游戏中有太多东西,即VS本身(安装/通用组件可能会以某种方式被破坏),NuGet,PowerShell(脚本)实际上安装dll是PowerShell脚本),当然还有EF。请在此处报告此问题:http://entityframework.codeplex.com/ - 这样一来,EF团队就会查看错误。尽可能多地提供详细信息,以便我们能够复制问题。