实体框架 - Code First Bug [关闭]

Posted

技术标签:

【中文标题】实体框架 - Code First Bug [关闭]【英文标题】:Entity Framework - Code First Bug [closed] 【发布时间】:2012-09-12 00:18:40 【问题描述】:

我正在使用带有 DBContext 的代码优先和没有配置文件(所有默认值)的实体框架 5。我安装了默认实例 .\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,具体取决于 你安装在哪一个上。

【问题讨论】:

如果您阅读了我的评论,则毫无疑问。只是向用户和实体框架团队报告可能的错误。 Entity Framework 团队使用这个论坛的次数比他们使用 Microsoft 论坛的次数多,所以我在这里发帖。 我还没有看到人们不提供连接字符串的应用程序(即使用默认值)。此问题不适合本网站的问答形式。 首先,您需要学习 Entity Framework,这是微软未来所有软件开发的首选解决方案。 *** 网站上有一些很好的例子。其次,这个论坛多年来为我节省了无数小时的工作时间,我只是想回报其他开发人员的青睐。我可能应该将这篇文章标记为讨论而不是问题,以避免你明显的困惑。 【参考方案1】:

由于帖子中没有足够的详细信息,因此很难判断这是否是 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 团队将查看该错误。提供尽可能多的细节,以便我们能够复制问题。

【讨论】:

谢谢。我将继续使用 codeplex。

以上是关于实体框架 - Code First Bug [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

实体框架-EF Code First Select外键

实体框架 Code First SQL Server 视图

使用自定义 ID 插入数据的 Code-First 实体框架

Entity Framework学习-实体框架中的code-first迁移

“Code First Migrations ”工具

1.使用Entity Framwork框架常用的技术手段Code First 和Reverse Engineer Code First