単一の linq クエリを使用して、linq でエンティティの子要素をフィルター処理する必要があります。これは可能ですか?
関連する 2 つのテーブルがあるとします。Verses と VerseTranslations。LINQ to SQL によって作成されたエンティティは、VerseTranslation のコレクションである子オブジェクトを含む Verse オブジェクトを持っているようなものです。
次のlinqクエリがある場合
var res = from v in dc.Verses
where v.id = 1
select v;
ID が 1 の Verses のコレクションを取得し、各 verse オブジェクトには VerseTranslations のすべての子オブジェクトが含まれています。
私がやりたいことは、Verse Translations の子リストをフィルタリングすることです。
これまでのところ、私が思いついた唯一の方法は、新しい Type Anonymous を使用するか、それ以外の方法です。次のように
var res= from v in dc.Verses
select new myType
{
VerseId = v.VerseId,
VText = v.Text,
VerseTranslations = (from trans in v.VerseTranslations
where languageId==trans.LanguageId
select trans
};
上記のコードは機能しますが、新しいクラスを宣言する必要がありました。新しいクラスを宣言する必要がないように、子テーブルのフィルタリングを最初のlinqクエリに組み込むことができるような方法でそれを行う方法はありませんか?
よろしく、マック