我需要使用单个 linq 查询过滤 linq 中实体的子元素。这可能吗?
假设我有两个相关的表。诗句和诗句翻译。LINQ to SQL 创建的实体是这样的,我有一个 Verse 对象,其中包含一个子对象,该子对象是 VerseTranslation 的集合。
现在,如果我有以下 linq 查询
var res = from v in dc.Verses
where v.id = 1
select v;
我得到一个 id 为 1 的 Verses 集合,每个 verse 对象包含来自 VerseTranslations 的所有子对象。
我还想做的是过滤 Verse Translations 的子列表。
到目前为止,我能够想出的唯一方法是使用新的匿名类型或其他方式。如下
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 查询中,这样就不必声明新的类。
问候, MAC