1

これが私の場合です。エンティティの非関連/ナビゲート可能なプロパティを照会したいだけです

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' の定数値を作成できません。このコンテキストでは、プリミティブ型または列挙型のみがサポートされています。

ありがとう

4

2 に答える 2

0

それは、オブジェクトを比較しているからです。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)
于 2013-06-11T09:20:20.723 に答える