C# 实体框架5-获取非相关/可导航实体
这里是我的例子,我只想查询实体的非相关/可导航属性C# 实体框架5-获取非相关/可导航实体,c#,linq,entity-framework,entity,C#,Linq,Entity Framework,Entity,这里是我的例子,我只想查询实体的非相关/可导航属性 public IQueryable<REQUIREMENTS> GetNotAssociatedRequirements(decimal projectID, decimal useCaseID) { IQueryable<REQUIREMENTS> nonRelated = context.REQUIREMENTS.Where(x => x.PROJECT_ID == projectID)
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;
}
为什么这不起作用
抛出错误:
无法创建“SIGERE_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)
如果您可以提供您的实体,那么就更容易弄清楚发生了什么。