Dynamic Linq ライブラリを使用して動的検索式を作成しています。1 対多の関係を持つナビゲーション プロパティのダイナミック linq ライブラリを使用して、ラムバ式を構築する方法で問題が発生しました。
次のものを含むステートメントで使用しています-
Person.Names.Select(FamilyName).FirstOrDefault()
動作しますが、問題が 2 つあります。
もちろん、FirstOrDefault() 名のみを選択します。各人のすべての名前を使用したいと考えています。
個人の名前がない場合、Select は例外をスローします。
通常のクエリでは from ステートメントを 2 つ実行できるためそれほど難しくありませんが、ラムダ式はより困難です。
任意の推奨事項をいただければ幸いです。
EDIT-追加のコード情報...非動的linq式は次のようになります。
var results = persons.Where(p => p.Names.Select(n => n.FamilyName).FirstOrDefault().Contains("Smith")).ToList();
クラスは次のようになります-
public class Person
{
public bool IsActive { get; set;}
public virtual ICollection<Name> Names {get; set;}
}
public class Name
{
public string GivenName { get; set; }
public string FamilyName { get; set; }
public virtual Person Person { get; set;}
}