【问题标题】:Changed Entity Framework v6 to Entity Framework v4.4 - getting error将 Entity Framework v6 更改为 Entity Framework v4.4 - 出现错误
【发布时间】:2017-09-23 14:49:48
【问题描述】:

我创建了一个 ASP.NET MVC 应用程序,我的实体框架版本是 6.0.0,但我想要实体框架版本 4.4.0。

我已经引用了版本 $.4.0 dll 并且还更改了 package.config 中的版本。

我收到此错误:

“严重代码描述项目文件行错误CS1705组装 带有标识的“Microsoft.AspNet.Identity.EntityFramework” 'Microsoft.AspNet.Identity.EntityFramework,版本=2.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' 使用 'EntityFramework,版本=6.0.0.0,文化=中性, PublicKeyToken=b77a5c561934e089' 版本高于 引用了具有标识“EntityFramework”的程序集“EntityFramework”, 版本=4.4.0.0,文化=中性, PublicKeyToken=b77a5c561934e089' 最终 c:\users\navya\documents\visual 工作室 2015\Projects\Final\Final\Models\IdentityModels.cs

当我在参考中更改实体框架版本时,请告诉我必须在哪里进行更改。

【问题讨论】:

  • 您能解释一下为什么要在 EF 版本中倒退吗?我非常怀疑 Asp.Net Identity 是否会在旧的 EF 版本上运行。 EF 4 已超过 5 年。
  • 尝试更改定位框架。 (不是实体框架,而是从 4.​​6 到 3.5/4 的 .net 框架)msdn.microsoft.com/en-us/library/bb398202.aspx
  • 不要更改 package.config 文件中的版本。使用 NuGet 包管理器。您可以在那里更改版本或至少卸载 EF6。您可能必须更改目标框架才能安装 EF4。这可能会清除错误。

标签: entity-framework asp.net-identity


【解决方案1】:

简单地说 - 你不能那样做。身份库是针对 EF6 编译的,它不适用于较低版本。 Upgrade path 从 4 到 6 列出了不允许您在任何情况下使用 v4 的重大更改。

您可以获得source code,在此处更改 EF 版本,调整源代码以使用 v4,构建二进制文件,直接在项目中引用二进制文件,无需 NuGet 包 => 利润(或者更确切地说是退后一步和维护噩梦)

或者,您可以构建自己的 IUserStore 实现,该实现依赖于 EF4,并让 Identity 使用您的实现。

除此之外,你运气不好。您不应该真正使用 EF4,但我怀疑这不是您的决定。

【讨论】:

    猜你喜欢
    • 2016-12-20
    • 2011-04-30
    • 1970-01-01
    • 2016-02-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多