【问题标题】:Nuget error: 'EntityFramework 5.0.0' is not compatible with 'Microsoft.AspNet.Identity.EntityFramework 1.0.0Nuget 错误:“EntityFramework 5.0.0”与“Microsoft.AspNet.Identity.EntityFramework 1.0.0”不兼容
【发布时间】:2015-11-06 08:18:03
【问题描述】:

我刚刚为 .Net 4.5 创建了一个 Web API 应用程序,以使用 Unity(IoC 框架)* 进行一些测试。

我已经使用 Nuget 添加了 Unity:

Install-Package Unity

然后我添加了 Mvc5 支持

Install-Package Unity.Mvc5

对于后端,我创建了一个包含 EF 模型的类项目,其中包含最少的内容。我是这样注册的:

container.RegisterType<MyEntities>();

为了进行基本的流程测试,我添加了一个存储库并像这样注册它:

container.RegisterType<IMyRepository, MyRepository>();

据我所知,一切都已启动并正在运行,但是当我执行时,我收到通知说 Web API 错过了对 EF 5 的引用。

所以我尝试像这样添加它:

Install-Package EntityFramework -Version 5.0.0

然后我得到这个错误:

无法解决依赖关系。 'EntityFramework 5.0.0' 不是 与'Microsoft.AspNet.Identity.EntityFramework 1.0.0 兼容 约束

Microsoft.AspNet.Identity.EntityFramework 引用是在 Web API 项目创建期间添加的,它(奇怪地)实际上是 2.0 版!

我想按原样保留项目,因为我认为上述参考是用于身份验证?我会在某个时候需要它。

关于如何解决这个问题的任何想法?

  • 我想测试将 EF ObjectContext 注册为依赖项,请参阅我之前的 question

【问题讨论】:

    标签: c# .net entity-framework nuget unity-container


    【解决方案1】:

    Asp Identity Entity Framework 2 依赖于 Entity Framework 6.0.1 及更高版本。

    See documentation

    将您的实体框架更新到最新版本,然后尝试您的代码。

    Update-Package EntityFramework -version 6.1.3

    【讨论】:

    • 行得通,谢谢!如果可以的话,还有一个额外的问题:我认为 Unity 设置正确,但我得到了 homecontroller 的“无参数构造函数”错误(它将 IMyRepository 作为依赖项)。我将容器添加到 WebApiConfig,是否还需要在其他地方注册它(也许是 Owin)?
    • 查看此链接。我希望它会帮助你。 stackoverflow.com/questions/9527988/…
    猜你喜欢
    • 1970-01-01
    • 2021-02-13
    • 2018-01-14
    • 2021-02-27
    • 2020-05-21
    • 2021-02-27
    • 2021-03-04
    • 2021-10-12
    • 1970-01-01
    相关资源
    最近更新 更多