[英]Entity Framework 5 - Get non related / navigable entities
Here is my case, I just want to query the NON related / navigable properties of an entity 这是我的情况,我只想查询实体的NON相关/可导航属性
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;
}
Why is this not working? 为什么这不起作用?
Throws error: 引发错误:
Unable to create a constant value of type 'SIGERE_DAL.Models.REQUIREMENTS'. 无法创建类型为'SIGERE_DAL.Models.REQUIREMENTS'的常量值。 Only primitive types or enumeration types are supported in this context.
在此上下文中仅支持原始类型或枚举类型。
Thanks 谢谢
Try this, 尝试这个,
IQueryable<REQUIREMENTS> nonRelated = context.REQUIREMENTS.Where(x => x.PROJECT_ID == projectID)
.Except(context.USE_CASES.Where(useCaseID).REQUIREMENTS);
It is because you are comparing objects. 这是因为您正在比较对象。 EF does not support that.
EF不支持。 It only supports comparisons involving primitive types.
它仅支持涉及原始类型的比较。 So you have to rewrite your query, something like:
因此,您必须重写查询,例如:
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)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.