簡単な作業ではないかと思います。私が見つけたすべての投稿は、子供たちだけを返すように見えるか、またはnullを手伝ってはいけません。私はEFを使用している以下のクラス親とフィルタリングされた子リストが存在する場合はそれを選択する方法(外部結合)
public class Parent
{
public int ID { get; set; }
public string Name { get; set; }
public virtual List<Child> Children { get; set; }
}
public class Child
{
public int ID { get; set; }
public string Name { get; set; }
public int isCurrent { get; set; }
}
を持っていると私は特定の親、それが存在する場合現在子を返したいです。だから私にとってこれは左外部結合のようなものです。メソッドの拡張機能を使いたいのですが、これはどのように機能するかを理解したいと思っています。
私が試した擬似コードは次のとおりです。私は現在の子供がいなくても親を返すことができないようです。
var test = db.Parents
.Where(p => p.ID == 1)
.Select(p => p.Children.Where(c => c.isCurrent == 1).DefaultIfEmpty()
);
親オブジェクトを返すようにしたいのですが、現在の子がある場合にのみコレクションに子オブジェクトを設定します。
私の周り探していますと、これは似ているようです。しかし、メソッド拡張を使用しません。一方的に利益があるかどうかは分かりません。 http://stackoverflow.com/questions/9705463/linq-to-entity-framework-return-a-list-of-parents-with-only-a-subset-or-empty-co – Andrew
"*現在の* *子**もし存在すれば* "あなたはただ**子**だけが現在のものであると言っていますか? –
これはフィルタリングされたインクルードの質問の毎週の化身だと思います。おそらく、[this](http://stackoverflow.com/q/16798796/861716)(または他の多くのもの)の複製です。 –