LINQクエリに含まれる項目にフィルタ条件を追加するのが難しいです。私のクエリは次のようなものですEntity Frameworkにフィルタの子コレクションが含まれています
var item = _Context.Order.Include("Inner")
.Include("Inner.first")
.Include("Inner.second")
.Where(x => (!(x.IsDeleted) && (x.IsActive) &&
(x.itemid == id))).FirstOrDefault();
上記のコードで "Inner"は別のリストです。今私は内側の項目をフィルタリングする必要があります。フィルタ条件inner.isDeleted = trueを持つ内部項目のみが必要です。クエリのようなクラスを返すべき
、
ようpublic class Order
{
public string Name { get; set; }
public List<InnerDetails> Inner{ get; set; }
public bool IsDeleted { get; set; }
}
とInnerDetailsクラス
私はLINQとEF
をテストされていないあなたはフィルタリングするために、正確に何をしようとしている - あなたはorder.inner.isdeletedどこorder.innerからのエントリのみを含めるか、またはあなたが全体のレコードを削除したいです例えば、条件を満たす注文の行全体? 2番目の場合、order.innerに2つのエントリがある場合、isDeleted = trueとisDeleted-falseの2つのエントリがある場合はどうなりますか? – Alex
@Alex: 'フィルタ条件が内部のアイテムのみが必要です。 isDeleted = true。 '、つまり、削除された内部レコード(inner.isDeleted = true)のみを含める必要があります。これは内部レコードのみであり、外部レコードには影響しません。 –
ネストされたリストをフィルタリングしようとしているようです。私はこの質問はあなたに役立つかもしれないと思うhttp://stackoverflow.com/questions/25183685/how-to-filter-nested-list-using-linq-lambdaこれとhttp://stackoverflow.com/questions/7079378/how -to-filter-nested-collection-entity-framework-objects – Alex