【发布时间】:2018-04-04 09:21:32
【问题描述】:
我有 2 个 Web 项目(1 个 MVC 和 1 个 API),使用调用一些 EF Core 查询的同一个库(.Net Core 1.1)......每次我尝试从 MVC(.Net Core 1.1)获取数据时它工作正常,但是当我尝试从 API (.Net Core 2.0) 访问它时,我收到以下错误消息:
找不到方法:'Microsoft.EntityFrameworkCore.Metadata.Builders.ReferenceCollectionBuilder2<!0,!1> Microsoft.EntityFrameworkCore.Metadata.Builders.ReferenceCollectionBuilder2.OnDelete(Microsoft.EntityFrameworkCore.Metadata.DeleteBehavior)'。
我认为 .Net Core 版本不会影响这一点,因为查询是从同一个库调用的
有人知道如何帮助我吗?
【问题讨论】:
-
我尝试了简单的查询,例如:_context.Materials.Count()
-
.NET Core 版本非常会影响这一点,因为 EF Core 版本在某种程度上与此相关。您需要确保 EF 引用在这两种情况下都由最小公分母版本(即 EF 1.1,因为您有一个 .NET Core 1.1 项目在玩。特别是,如果您的 .NET Core 2.0项目引用 EF Core 2.0,然后在尝试访问类库时也会使用该引用,从而导致潜在的版本冲突。
-
确实,您应该保持所有 .NET Core 版本相同。如果您还没有准备好将所有内容升级到 .NET Core 2.0,那么对于新项目坚持使用 .NET Core 1.1。否则,请继续更新以任何方式互连的所有内容,以使用最新的 .NET Core。在共享依赖项的同时尝试混搭会害死你。
-
谢谢@ChrisPratt,虽然这不是我的错,我会尝试解决这个冲突,如果我不能,将所有内容更改为 .NET Core 1.1
标签: asp.net-mvc asp.net-core .net-core entity-framework-core