9

私は本質的に持っています:

public ActionResult MyAction(List<int> myIds)
{
    var myList = from entry in db.Entries
             where (myIds == null || myIds.Contains(entry.Id))
                 select entry;
    return View(myList);
}

目的は、渡された Id を持つアイテムのみを取得するか、それらすべてを返すことです。(明確にするために他の基準は省略されています)

戻ったときに例外myListが発生しました。デバッグを行ったところ、.ToList()

タイプ 'System.Collections.Generic.List`1' の要素を比較できません。
プリミティブ型 (Int32、String、Guid など) とエンティティ型のみがサポートされています。

4

1 に答える 1

22

問題は、myIds が null だったためです。

私はする必要がありました:

public ActionResult MyAction(List<int> myIds)
{
    if(myIds == null)
    {
        myIds = new List<int>();    
    }
    bool ignoreIds = !myIds.Any();

    var myList = from entry in db.Entries
                 where (ignoreIds || myIds.Contains(entry.Id))
                 select entry;
    return View(myList);
}
于 2012-11-13T15:50:43.593 に答える