使用.include和条件

时间:2018-09-06 17:27:59

标签: entity-framework-core

我有一个Verse类,其中包含VerseTranslation列表。

当我获取经文时,我只想要一些经文翻译。有办法做这样的事吗?

var desiredTranslationCodes = new List<string> { "Code1", "Code2" }; 
var result = Context.Verses.Where(v => v.Chapter == 1 && v.VerseNumber == 3)
  .Include(v => v.Translations, t => desiredTranslationCodes.Contains(t.TranslatorCode))

我只会将它们转换为视图模型。当我可能只想要10个翻译中的2个时,加载所有VerseTranslations似乎很浪费。

1 个答案:

答案 0 :(得分:0)

我认为您可以将投影用于匿名或新类型。请尝试以下方法。希望对您有帮助,我的朋友:))

var result  = Context.Verses.Select(c => new 
{ 
    Data = c, 
    Translations = c.Translations.OrderBy(p => p.Name).Take(2) 
});