【问题标题】:Why adding a model Entity Framework to csproj fail?为什么将模型实体框架添加到 csproj 失败?
【发布时间】:2018-08-01 14:06:01
【问题描述】:

这是我的项目文件 csproj

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
     <TargetFramework>net4.6</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
     <PackageReference Include="EntityFramework" Version="6.2.0" />
  </ItemGroup>
</Project>

在 VisualStudio 2017 中,我尝试添加项目“ADO.NET 实体数据模型”。当按下添加按钮 VS 时抛出一个异常......

在日志文件中我得到了这个:

====================== 2018-02-21 15:23:47 可恢复 System.Reflection.TargetInvocationException:调用目标引发了异常。 ---> Microsoft.VisualStudio.ProjectSystem.ProjectException: 此项目项目提供者不支持项目类型“EntityDeploy”。 在 Microsoft.VisualStudio.ProjectSystem.ProjectErrorUtilities.ThrowProjectExceptionHelper(异常 innerException,字符串 unformattedMessage,对象 [] args) 在 Microsoft.VisualStudio.ProjectSystem.ProjectErrorUtilities.ThrowProjectException(字符串消息,对象 arg0) à Microsoft.VisualStudio.ProjectSystem.CpsProjectItem`1.d__25.MoveNext()

【问题讨论】:

标签: entity-framework-6 csproj


【解决方案1】:

EF6 6.4.x 现在支持 Microsoft.Net.SDK 样式项目。

您应该注意,EF6 仍然不知道 AutoGenerateBindingRedirects 标志。

当你跑步时

Add-Migrations Add_Customer_Table

如果您收到“System.IO.FileLoadException”,那么您应该手动将绑定重定向添加到 app.config 中

【讨论】:

    【解决方案2】:

    This issue 描述的异常与您的日志包含的相同:

    System.Reflection.TargetInvocationException:已抛出异常 通过调用的目标。 ---> Microsoft.VisualStudio.ProjectSystem.ProjectException:项目类型 此项目项提供者不支持“EntityDeploy”。

    不幸的是,它没有直接的解决方案。

    总体而言,您不应该期望新的 csproj 格式的 EF 工具能够顺利运行。 EntityFramework6 存储库中有一个discussion,它收集了一些已知问题,包括迁移和 EF 工具。 EF 团队有一个明确的声明,我们不应该期望这些问题能很快得到解决:

    另一方面,在 ASP.NET Core 应用程序中使用 EF6 是 可能,但需要解决方法。例如。在这种情况下,保留模型 在带有传统项目文件的单独 .NET Framework 库中, 并从使用新项目的解决方案中卸载任何项目 系统同时处理迁移。

    我们不愿意承诺让 EF6 迁移完全适用于 新的项目系统,因为我们认为这将涉及 重大投资,这将阻碍我们在主要方面的进展 策略,但也许我们可以做一些更便宜的事情来 减少变通办法的摩擦,例如让它让你仍然 需要将 EF6 模型放在一个单独的项目中,但至少你不需要 需要卸载其他项目。

    关于您的问题,我可以提出以下建议:

    1. 尝试更新到最新的 Visual Studio 版本。我正在使用 VS 2017 版本 15.3.0,我没有遇到与您相同的问题。在模型生成和与设计师合作期间,我仍然会收到自发的错误/警告消息,但最终会正确生成模型。

    2. 如果对您不起作用,请考虑切换到 EF 团队建议的解决方法,即将 EF 模型与传统项目文件一起保存在单独的库项目中。

    好吧,这样的建议可能不适合完美主义者,但(再次)新的 csproj 格式还没有被所有现有的 VS 工具完全采用,目前尚不清楚它何时发生。

    【讨论】:

    • 您好,这个问题解决了吗?我仍然得到完全相同的错误。至于解决方法,有人可以解释一下传统项目文件的含义吗?我已将 EF 模型放在单独的文件夹中,还尝试卸载项目。有人还建议在 app.config 中填写显然不再手动生成的配置部分。请有人帮忙:/
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-08-08
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2017-04-02
    • 2019-02-25
    • 1970-01-01
    相关资源
    最近更新 更多