EF:包含路径表达式必须引用的类型
问题描述:
var context = context.MyEntity
.include(e => e.something)
.Include(e => e.scoring
.Select(sc=>sc.scoring_parameters
//This is problem
.Where(scp =>scp.scoring_id == sc.scoring_id)
.Select(scp =>scp.cis_scoring_parameters.cis_scoring_parameters_tabs)))
.include(e => e.something_else)
.FirstOrDefault(e => e.id == _id);
的其中clausule给出误差限定的导航属性“包含路径表达式必须引用的类型所定义的导航属性”。我看过有这个错误的帖子,但他们不适合这个。我不知道如何以适当的方式写我的lambda。有人可以帮忙吗?EF:包含路径表达式必须引用的类型
答
不能像这样过滤包含的数据。 Include
用于告诉EntityFramework要加载哪些数据。如果scoring_parameters.scoring_id
和scoring.scoring_id
是相互关联的,那么你可以尝试这样的:
var context = context.MyEntity
.include(e => e.something)
.Include(e => e.scoring
.Select(sc=>sc.scoring_parameters.Select(scp => scp.cis_scoring_parameters.cis_scoring_parameters_tabs)))
.include(e => e.something_else)
.FirstOrDefault(e => e.id == _id);
我想这scp.cis_scoring_parameters.cis_scoring_parameters_tabs
也是一个导航属性。
如果'scoring_id'是从'scoring_parameter'到'scoring'的FK,并且您正确配置了映射,那么where子句是多余的。只要尝试一下,不要在哪里。 –