从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();