如何根据 EF Core 中的条件选择集合?

时间:2021-04-22 10:16:58

标签: .net entity-framework-core

我有一个包含两个列表的对象,我需要根据条件选择其中一个,如下所示:

    .Set<Person>()
    .Select(x => 
            Employees = x.IsManager ? x.WorkerList1 : x.WorkerList2

WorkerList1 和 WorkerList2 都是相同类型的集合。

我尝试合并/连接列表,但它引发错误(无法翻译)。

我尝试选择一个中间查询视图对象,如下所示:

    .Set<Person>()
    .Select(x => 
            Employees = x.IsManager 
                 ? x.WorkerList1.Select(x => new EmployeeView { //..assign properties here }) 
                 : x.WorkerList2.Select(x => new EmployeeView { //..assign properties here })

它也无法翻译。 有什么办法可以做到这一点吗?

我正在使用 MSSQL 提供程序。

1 个答案:

答案 0 :(得分:1)

您是否考虑过拆分查询?

var queryForManagers = querable.Where(x => x.IsManager);
var queryForNotManagers = querable.Where(x => !x.IsManager);

// now you can map and concat items independently...
相关问题