【问题标题】:Entity Framework 5 - Get non related / navigable entitiesEntity Framework 5 - 获取不相关/可导航的实体
【发布时间】:2013-06-11 04:48:40
【问题描述】:

这是我的情况,我只是想查询一个实体的非相关/可导航属性

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”类型的常量值。此上下文仅支持原始类型或枚举类型。

谢谢

【问题讨论】:

  • 如果你能提供你的实体,就更容易弄清楚发生了什么。

标签: c# linq entity-framework entity


【解决方案1】:

试试这个,

IQueryable<REQUIREMENTS> nonRelated = context.REQUIREMENTS.Where(x => x.PROJECT_ID == projectID)
                                                              .Except(context.USE_CASES.Where(useCaseID).REQUIREMENTS);

【讨论】:

    【解决方案2】:

    这是因为你在比较对象。英孚不支持。它只支持涉及原始类型的比较。所以你必须重写你的查询,比如:

    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)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-10
      • 2014-07-22
      • 2020-08-06
      相关资源
      最近更新 更多