C# 将IQueryable附加到IQueryable
我需要在q末尾的q1中有数据试试这个:C# 将IQueryable附加到IQueryable,c#,linq,iqueryable,C#,Linq,Iqueryable,我需要在q末尾的q1中有数据试试这个: var q = _context.a .Include(x => x.status) .Include(x => x.type) .Where(x => x.status == 20); var q1 = _context.a .Include(x => x.status)
var q = _context.a
.Include(x => x.status)
.Include(x => x.type)
.Where(x => x.status == 20);
var q1 = _context.a
.Include(x => x.status)
.Include(x => x.type)
.Where(x => x.status == 40);
但是,您也可以将两个查询合并到一个查询中:
var q = _context.a
.Include(x => x.status)
.Include(x => x.type)
.Where(x => x.status == 20).AsQueryable();//ATTENTION AsQueryable()
var q1 = _context.a
.Include(x => x.status)
.Include(x => x.type)
.Where(x => x.status == 40).AsQueryable();//ATTENTION AsQueryable()
q = q.Concat(q1);
检查此项:。以前回答过。@BenHarris我尝试过var q2=q.concat(q1),它没有返回任何结果我尝试concat的原因是我需要状态为40的记录位于表的末尾。状态中的值是10,20,30,40,50,60,70,但我需要将状态为40的记录放到表的末尾。我已经试过q=q.Concat(q1);但它给了我Null@spartansbmk为什么不添加一个标志列并根据该标志对结果进行排序?例如,将1设置为40,将0设置为剩余,然后仅根据此标志进行排序,而不使用concat@spartansbmk for q=q.Concat(q1)您需要将AsQueryable()添加到q和q1中,如提供的代码中所述
var q = _context.a
.Include(x => x.status)
.Include(x => x.type)
.Where(x => x.status == 20 || x.status == 40)
.OrderBy(x=>x.status);