【问题标题】:A constructible type deriving from DbContext could not be found in the selected file (EF Power Tools Beta 2 + VS 2012))在所选文件中找不到从 DbContext 派生的可构造类型(EF Power Tools Beta 2 + VS 2012))
【发布时间】:2015-06-02 05:16:36
【问题描述】:

我将 VS 2012 (Ultimate) 与 Entity Framework Power Tools Beta 2 和实体框架 5.0(使用 nuget)一起使用。

我创建了一个 DbContext 类。当我在解决方案资源管理器中右键单击相应文件并选择“实体框架/查看实体数据模型(只读)”时,出现错误“在所选文件中找不到源自 DbContext 的可构造类型。 " VS 2012 中的错误。

我尝试了http://blogs.msdn.com/b/adonet/archive/2012/04/09/ef-power-tools-beta-2-available.aspx 中描述的解决方法,但我的注册表不包含“HKEY_CURRENT_USER\Software\Microsoft\VisualStudio\11.0_Config\BindingPaths\”中的键“{BFC24BF4-B994-4757-BCDC-1D5D2768BF29}” .

重启visual studio并按照相同步骤操作后,会弹出一个对话框,提示“调用的目标已抛出异常”。

顺便说一句。我能够执行从我的 DbContext 创建数据库的测试应用程序,并且 O 可以在该数据库中插入/删除/等数据。

任何帮助/提示将不胜感激。

亲切的问候, 梅林

【问题讨论】:

  • 您是否安装了其他扩展程序?
  • .Net 反射器、MS Web 开发者工具、Nuget 包管理器、适用于 Javascript 的 Windows 库的 VS 扩展和适用于 VS 2012 的 VSCommands

标签: entity-framework


【解决方案1】:

卸载 VSCommands for Visual Studio 2012 应该可以让一切恢复正常。不幸的是,这个扩展不能很好地与 EF Power Tools 配合使用。它将自己的 EntityFramework.dll 版本加载到主 VS 进程中,这会阻止 DbContext 发现逻辑正常工作。

【讨论】:

  • 嗨,Brice,我从事 VSCommands 工作,以前不知道这个问题。我会尽快修复它。您是否对如何在同一进程中加载​​不同版本的 EntityFramework.dll 有任何提示,或者不支持/不推荐这种情况?
  • @JarekKardas VS 单元测试团队在 VS 11 开发者预览版中遇到了这个问题。我认为他们使用 AppDomain 或通过将程序集加载到 load-from 上下文来解决它。受影响的 API 是 VS 的DynamicTypeService。随时reach out to us(EF 团队);我们也许可以从他们的团队中拉出某人以提供更多指导。
  • 收到了一封电子邮件,并在最新版本的 VSCommands 中实施了修复,感谢 Brice 的帮助!
  • Brice,前几天我在安装 2 个扩展“HTML Spell Checker”和“Multi Language Spell Checker”后遇到了这个问题。我禁用了 HTML 拼写检查器,问题就消失了。我应该检查是否再次启用它但禁用另一个也有效。是扩展还是关于安装扩展的东西?在这里写了一些其他设计师问题的博客juliel.me/10BP7mf
  • @JulieLerman,问题通常出在扩展本身。扩展被加载到主 VS AppDomain 中,它们需要非常小心,不要做任何会影响其他扩展的程序集解析的事情。
【解决方案2】:

正如 Brice 所说,这可能是由 Visual Studio Extensions 的兼容性问题引起的。 最新版本的 VSCommands 修复了这个问题。你可以从Visual Studio Gallery获取if。

非常感谢 Brice 和 EF 团队帮助诊断问题!

【讨论】:

  • 我承认它现在可以工作了!非常感谢修复!
【解决方案3】:

即使没有其他答案中列出的扩展名,我也会间歇性地看到这个错误,我发现删除解决方案的本地 .suo 文件是可行的——尽管这在很大程度上是一个当所有其他答案都失败的时候!

【讨论】:

    【解决方案4】:

    我在使用不同的 Visual Studio 扩展时遇到了类似的问题。就我而言,它是 Visual Studio Tools for Git(版本 1.0.0.0)。

    我刚刚禁用了扩展,重新启动了 VS2012,然后我就可以使用代码优先的 EF 项目生成模型了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-10-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多