当前位置:  开发笔记 > 编程语言 > 正文

在Entity Framework核心中选择未加载导航属性后包含

如何解决《在EntityFramework核心中选择未加载导航属性后包含》经验,为你挑选了1个好方法。



1> Ivan Stoev..:

从EF Core文档 - 加载相关数据 - 忽略包括部分(突出显示是我的):

如果更改查询以使其不再返回查询开头的实体类型的实例,则忽略包含运算符.

这与EF6不同,后者Include适用于最终查询实体类型.我不知道这是当前的限制还是"按设计",但是现在你必须用需要包含的实体开始查询.

在你的情况下,它应该是这样的:

var user = dbContext.Users
    // if you don't have inverse navigation property
    .Where(e => dbContext.UserMappers.Any(um => um.UserId == e.Id && um.OldUserId == id))
    // if you have inverse collection navigation property
    //.Where(e => e.UserMappers.Any(um.OldUserId == id))
    // if you have inverse reference navigation property
    //.Where(e => e.UserMapper.OldUserId == id)
    .Include(e => e.UserProfile)
    .FirstOrDefault();

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有