Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Linq对实体的要求:“对实体的要求”;“空的”;以查询为基础_C#_Linq To Entities_Concat - Fatal编程技术网

C# Linq对实体的要求:“对实体的要求”;“空的”;以查询为基础

C# Linq对实体的要求:“对实体的要求”;“空的”;以查询为基础,c#,linq-to-entities,concat,C#,Linq To Entities,Concat,我有以下代码: var query = (from suspensionRequest in _context.DeviceSuspensionRequests where conditions) select suspensionRequest).ProjectTo<RequestDto>(_mapperConfig); if (requestType == null || requestType.

我有以下代码:

        var query =
            (from suspensionRequest in _context.DeviceSuspensionRequests where conditions)
             select suspensionRequest).ProjectTo<RequestDto>(_mapperConfig);

        if (requestType == null || requestType.Value == RequestTypeDto.DeletingRequest)
        {
            query = query.Concat((from deletingRequest in _context.DeviceDeletingRequests
                                  where (conditions)
                                  select deletingRequest).ProjectTo<RequestDto>(_mapperConfig));
        }

        if (requestType == null || requestType.Value == RequestTypeDto.LostStolenRequest)
        {
            query = query.Concat((from lostStolenRequest in _context.DeviceLostStolenRequests
                                  where (conditions)
                                  select lostStolenRequest).ProjectTo<RequestDto>(_mapperConfig));
        }
        //...
var查询=
(来自_context.DeviceSuspensionRequests中的suspensionRequest,条件为)
选择suspensionRequest).ProjectTo(_-mapperConfig);
if(requestType==null | | requestType.Value==RequestTypeDto.DeletingRequest)
{
query=query.Concat((来自_context.deviceDeleteRequests中的deletingRequest
其中(条件)
选择deletingRequest).ProjectTo(_-mapperConfig));
}
if(requestType==null | | requestType.Value==RequestTypeDto.LostStolenRequest)
{
query=query.Concat((来自_context.DeviceLostStolenRequests中的lostStolenRequest
其中(条件)
选择lostStolenRequest).ProjectTo(_-mapperConfig));
}
//...
但我想避免将第一个实体(SuspendionRequest)作为强制性实体,最好创建一个空的
IQueryable
,然后只与必要的实体连接。
你知道怎么做吗?

你想做什么?这本质上是多个查询之间的联合。如果这是您想要做的,您可以创建一个包含您想要的查询的列表,并在最后对它们使用
Concat
。甚至可以使用
var query=querys.Aggregate((prev,curr)=>prev.Concat(curr))