【发布时间】:2021-09-18 11:59:48
【问题描述】:
当尝试加载相关数据并按照Explicit Loading of Related Data 上的指南进行操作时,我收到以下错误:
IApplicationDbcontext 不包含
Entry的定义。
我的示例代码,与他们的类似,包括:
var person = _context.Persons.Single(p => p.PersonId = id);
_context.Entry(person).Collection(p => p.Addresses).Load();
我的情况的不同之处在于我正在注入一个看起来很标准的IApplicationDbContext,我认为这并没有什么不同:
public class ApplicationDbContext : DbContext, IApplicationDbContext
{
...
public DbSet<Person> Persons { get; set; }
public DbSet<Address> Addresses { get; set; }
...
}
我在这个项目中有Microsoft.EntityFrameworkCore 5.0.7。
【问题讨论】:
-
Entry是DbContext类的一个虚方法,如果你的_context是IApplicationContext那么它就不能被调用。 github.com/dotnet/efcore/blob/… -
@Lowkey 哇,真的吗?长期以来,注入应用程序的数据库上下文一直是常态。这怎么可能行不通?那么关系属性就没有用了吗?
标签: c# .net entity-framework dependency-injection entity-framework-core