私の質問に関連するstackoverflowに関するQ&Aはたくさんありますが、このシナリオで最適に機能する問題の理由と解決策を推測することはできません。
だから私はあなたがparentIDを渡すことを可能にするメソッドを持っています、そして値に基づいてレコードはLINQクエリを使用してフィルタリングされます。データベースのフィールドはNULL値を許可します。ここで、where句で演算子を使用してフィールドを比較する==
と、発行されたSQLが間違っているため(IS NULL
比較には使用されません)、クエリの結果は0になります。私はこれを方法を使って解決しObject.Equals()
ました。それは機能しましたが、整数であるNONNULL値を渡すときに例外が発生します
タイプ'System.Object'の定数値を作成できません。このコンテキストでは、プリミティブ型または列挙型のみがサポートされています。
だから私は簡単な方法を書きました
using (TestEntities context = new Entities())
{
return from c in context.ItemMappings
where c.ParentID.Equals(parentID)
select new ItemDTO
{
ItemID = c.Item.ItemID,
ItemName = c.Item.ItemName,
ItemType = new ItemTypeDTO
{
TypeID = c.Item.Type.TypeID,
TypeName =c.Item.Type.TypeName
};
}