Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.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#可查询订购人、取货人和哪里不正常工作_C# - Fatal编程技术网

C#可查询订购人、取货人和哪里不正常工作

C#可查询订购人、取货人和哪里不正常工作,c#,C#,这是我的代码: IQueryable<ICB_TRANSACTION> Query = DbContext.Set<ICB_TRANSACTION>(); if (_input.i_Type != -99) // -99 = All type { Query = Query.Where(x => x.TYPE == _input.i_Type); } if (_input.i_Member_ID != null && _input.i_Me

这是我的代码:

IQueryable<ICB_TRANSACTION> Query = DbContext.Set<ICB_TRANSACTION>();

if (_input.i_Type != -99) // -99 = All type
{
    Query = Query.Where(x => x.TYPE == _input.i_Type);
}
if (_input.i_Member_ID != null && _input.i_Member_ID > 0)
{
    Query = Query.Where(x => x.CREATE_BY_ID == _input.i_Member_ID);
}
if (_input.b_OderByDesc)
    Query = Query.OrderByDescending(x => x.ID);
else
    Query = Query.OrderBy(x => x.ID);

if (_input.i_Top > 0)
{
    Query = Query.Take(_input.i_Top);
}

return Query.ToList();
IQueryable Query=DbContext.Set();
如果(_input.i_Type!=-99)/-99=所有类型
{
Query=Query.Where(x=>x.TYPE==\u input.i\u TYPE);
}
if(_input.i_Member_ID!=null&&u input.i_Member_ID>0)
{
Query=Query.Where(x=>x.CREATE\u BY\u ID===\u input.i\u Member\u ID);
}
如果(_input.b_OderByDesc)
Query=Query.OrderByDescending(x=>x.ID);
其他的
Query=Query.OrderBy(x=>x.ID);
如果(_input.i_Top>0)
{
Query=Query.Take(\u input.i\u Top);
}
返回Query.ToList();
这就是结果:

但我想这样:


我该怎么做?请帮帮我

如果我在你的代码中看到一些奇怪的东西,那就是:

您有一个
IQueryable

您尝试按/take排序:但是
OrderBy
/
OrderBy降序
返回一个
IOrderedQueryable
,并将结果分配给您的
IQueryable

即使
IOrderedQueryable
继承自
IQueryable
,我想这可能会导致意外的结果

我会那样做

//filteredQuery is an IQueryable<ICB_TRANSACTION>
var filteredQuery = DbContext.Set<ICB_TRANSACTION>();

if (_input.i_Type != -99) // -99 = All type
    filteredQuery = filteredQuery.Where(x => x.TYPE == _input.i_Type);

if (_input.i_Member_ID != null && _input.i_Member_ID > 0)
    filteredQuery = filteredQuery.Where(x => x.CREATE_BY_ID == _input.i_Member_ID);

//now we have done the filters, let's do the order by / take part.
//sortedQuery is an IOrderedQueryable<ICB_TRANSACTION>
var sortedQuery = _input.b_OderByDesc 
     ? filteredQuery.OrderByDescending(x => x.ID)
     : filteredQuery.OrderBy(x => x.ID);

if (_input.i_Top > 0)
    sortedQuery = sortedQueryable .Take(_input.i_Top);

return sortedQuery.ToList();
//filteredQuery是一个IQueryable
var filteredQuery=DbContext.Set();
如果(_input.i_Type!=-99)/-99=所有类型
filteredQuery=filteredQuery.Where(x=>x.TYPE==\u input.i\u TYPE);
if(_input.i_Member_ID!=null&&u input.i_Member_ID>0)
filteredQuery=filteredQuery.Where(x=>x.CREATE\u BY\u ID==\u input.i\u Member\u ID);
//现在我们已经完成了过滤器,让我们按/参与订单。
//sortedQuery是一个IOrderedQueryable
var sortedQuery=\u input.b\u OderByDesc
? filteredQuery.OrderByDescending(x=>x.ID)
:filteredQuery.OrderBy(x=>x.ID);
如果(_input.i_Top>0)
sortedQuery=sortedQueryable.Take(_input.i_Top);
返回sortedQuery.ToList();

你能解释一下什么
工作不正常吗
(遗憾的是,这不是不言自明的)?我可能遗漏了一些东西,但我看不出sql命令之间有什么主要区别,除了子查询的用法。我有查询,但使用“order by[table].ID desc->无行,但更改“desc to asc->某些记录”。我和我的同事无法解释这一点。子查询总是有行