繁体   English   中英

如何在 EF Core 中根据条件对 select 进行集合?

[英]How to select a collection based on condition in EF Core?

我有一个 object 有两个列表,我需要 select 根据条件其中一个,如下所示:

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

WorkerList1 和 WorkerList2 都是同类型的 collections。

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

我试过 select 一个中间查询视图 object,像这样:

    .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 提供程序。

您是否考虑过拆分查询?

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

// now you can map and concat items independently...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM