实体框架5 -获取不相关/可导航的实体
本文关键字:实体 导航 获取 框架 不相关 | 更新日期: 2023-09-27 18:18:00
这是我的情况,我只是想查询一个实体的非相关/可导航属性
public IQueryable<REQUIREMENTS> GetNotAssociatedRequirements(decimal projectID, decimal useCaseID)
{
IQueryable<REQUIREMENTS> nonRelated = context.REQUIREMENTS.Where(x => x.PROJECT_ID == projectID)
.Except(context.USE_CASES.Find(useCaseID).REQUIREMENTS);
return nonRelated;
}
为什么不工作?
抛出错误:
无法创建类型为' sigigere_dal . models . requirements '的常数值。在此上下文中只支持基本类型或枚举类型。
谢谢
试试这个,
IQueryable<REQUIREMENTS> nonRelated = context.REQUIREMENTS.Where(x => x.PROJECT_ID == projectID)
.Except(context.USE_CASES.Where(useCaseID).REQUIREMENTS);
这是因为您正在比较对象。EF不支持。它只支持涉及基本类型的比较。所以你必须重写你的查询,像这样:
var nonRelated =
context.REQUIREMENTS.Where(r => r.PROJECT_ID == projectID)
.Where(r =>
!(
context.USE_CASES
.Where(uc => uc.UseCaseID == useCaseID)
.SelectMany(uc => uc.REQUIREMENTS)
.Select(r1 => r1.Id)
).Any(id == r.Id)