DynamicLinq使用子查询构建select

时间:2017-12-21 12:14:50

标签: entity-framework linq dynamic-linq

我用System.Linq.Dynamic.Core动态构建select。我想添加另一列(子查询)。这可能吗?

我需要获得与此查询相同的结果:

var test = this.DbContext.Countries.Select(t => new
{
    t.Id,
    t.ISOCode,
    lookup = t.Translates.Where(t2 => t2.LangISOCode=="ENG").Select(t2 => t2.Title).FirstOrDefault()
}).ToArray();

我到目前为止:

this.DbContext.Countries.Select("new(Id,ISOCode)").ToDynamicArrayAsync()

但不确定如何添加其他子查询列。

1 个答案:

答案 0 :(得分:0)

解决方案是:

await this.DbContext.Countries.Select("new(Id,ISOCode,Translates.Where(LangISOCode=\"SLV\").Select(Title).FirstOrDefault() as translates)").ToDynamicArrayAsync();

我通过梳理源测试中的代码(selectwherefirstordefault)找到了解决方案。