使用EF Core .ThenInclude时触发System.InvalidOperationException异常求助
问题排查:System.InvalidOperationException 在使用 ThenInclude 时
错误原因
你误用了ThenInclude方法:ThenInclude仅用于加载导航属性(即实体间关联的其他实体/实体集合),而PassportNo是Candimmigration类的标量属性(普通字段),不属于导航属性范畴,因此触发该异常。
当你通过Include(i => i.Candimmigration)加载关联的Candimmigration实体时,该实体的所有标量属性(包括PassportNo)会被自动加载,无需额外调用ThenInclude。
修正后的代码
_dbContext.Candidates.Where(i => i.Id == 1) .Include(i => i.Candimmigration) .Load();
补充说明
Include/ThenInclude的核心作用是加载实体间的关联数据,例如:若Candimmigration存在关联的Passport实体导航属性,此时才需要使用ThenInclude(i => i.Passport)。- 字符串、数字、日期等标量属性,在加载主关联实体时会被默认包含,无需单独声明加载。
内容的提问来源于stack exchange,提问作者Unis
相关产品推荐
相关产品推荐

