私はLinq To Sqlを使用してWP7アプリケーションを開発しています。私はLinqを使用しましたが、これはLinqをSqlに使用した最初のものです。 EntitySetでデータをフィルタリングする際に問題が発生しています。私はそれが間違っているかもしれない私は手がかりがありません。私が今働いているのは動作しますが、私はEntitySetの1つをフィルタリングする必要があります。LinqToSql Filter EntitySet
私は4つのテーブルを持っています。親、子、孫、親テーブルのリンクテーブル。 ParentChildを照会すると、ParentChildエンティティが返され、親、子、および孫のエンティティを順番に繰り返し処理できます。私ができることをしたいのは、Grandchildエンティティをフィルタリングすることです。
私は親のテーブルに父と母がいると言います。それから子どものテーブルに息子と娘がいます。そして、孫のテーブルにある孫と孫娘。もちろん普通のアソシエーションなどがあります。
私は父親を返すこともできます。これは、関連するすべてのテーブルも正しく取得できます。私が持っている問題は、孫のフィルタリングです。私は孫だけを望んで、セックスの場を持っているとしましょう。これどうやってするの?私はそれを理解できないようです。
これは私が使用しているコードですが、うまく動作しますが、すべての孫を引きます。
IQueryable<ParentChild> parentChild = from ParentChild c in DataContext.ParentChild
where c.ParentId == this.parentId
select c;
foreach (Grandchild grandchild in parentChild.SelectMany(parent => parent.Child.Grandchild))
{
Console.WriteLine(grandchild.Name);
}
私はこれを行うので、場合:
IQueryable<ParentChild> parentChild = from ParentChild c in DataContext.ParentChild
where c.ParentId == this.parentId && c.Child.Grandchild.Any(a => a.Sex == "F")
select c;
foreach (Grandchild grandchild in parentChild.SelectMany(parent => parent.Child.Grandchild))
{
Console.WriteLine(grandchild.Name);
}
私は親を取得しますが、私は唯一の女性の孫を持つ子どもたちを取得します。私は親、すべての子供たち(女性の孫がいなくても、孫がいなくても)と女性の孫だけが欲しいです。
これはまさに私が後にしたものであり、より多くのアップフォートが必要です! – Ian