0

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

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

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

编辑 -

我发现 NuGet 的问题可能暴露在哪里:

安装 EF NuGet 包时,会注册一个默认连接工厂,该连接工厂指向 SQL Express 或 LocalDb,具体取决于您安装的是哪一个。

4

1 回答 1

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 团队查看。尽可能多地输入细节,以便我们能够复制问题。

于 2012-09-12T16:46:12.667 回答