Entity Framework 5执行Include操作报InvalidOperationException如何解决?
错误原因
EF Core 中 Include() 方法的作用是预加载关联的导航属性,仅支持传入实体类中定义的导航属性访问表达式。你代码中传入的 AcronymId 是值类型的外键字段,并非导航属性,不符合 Include() 的参数要求,因此抛出异常。
你的 AcronymOld 类中指向 Acronym 实体的导航属性是名为 Acronym 的实体引用属性,而非外键字段 AcronymId。
解决方案
修改触发异常的代码行,将 Include() 内的参数替换为导航属性 Acronym 即可,修改后代码如下:
AcronymOld = await acronymsOld.Include(m => m.Acronym) .OrderBy(m => m.Abbreviation) .AsNoTracking() .ToListAsync();
修改后EF会正确预加载每个AcronymOld实例关联的Acronym实体数据,不会再抛出无效表达式异常。
内容的提问来源于stack exchange,提问作者1 Zero 3 Tech
相关产品推荐
相关产品推荐

