C# 我如何通过降序,然后使用linq获取一些项目?
我有以下C LINQ代码:C# 我如何通过降序,然后使用linq获取一些项目?,c#,linq,entity-framework,C#,Linq,Entity Framework,我有以下C LINQ代码: List<myProductList> qMain = ( from m in db.ProductsList.OrderByDescending (it => it.GroupCode == 1 || it.L1 == 1) where m.GoodCode == 1 || m.L1 == 1 select new myProductList { StackAmount
List<myProductList> qMain = (
from m in db.ProductsList.OrderByDescending
(it => it.GroupCode == 1 || it.L1 == 1)
where m.GoodCode == 1 || m.L1 == 1
select new myProductList
{
StackAmount = m.StackAmount,
GoodCode = m.GoodCode,
PrivateCodeForSort = m.PrivateCodeForSort,
GoodMainCode = m.GoodMainCode,
MaxSellPrice = m.MaxSellPrice,
SellPrice5 = m.SellPrice5,
SellPriceType = m.SellPriceType,
GoodExplain1 = m.GoodExplain1,
Writer = m.Writer,
DragoMan = m.DragoMan,
GoodName = m.GoodName,
Printing = m.Printing,
CoverType = m.CoverType,
PrintYear = m.PrintYear,
PrintPeriod = m.PrintPeriod,
Creation = m.CreationDate
}).Take(50).ToList();
我有一种严重的问题,ProductList表是一个非常大的表,我不想从数据库服务器传输所有的行,所以我解决这个问题的方法是取50行,这是我必须的,但问题是我想先降序,然后取50行,但这段代码先升序取50行,然后降序,只取那些已经存在的50行已经转移和分类了。我如何解决这个问题?类似这样的问题:
List<myProductList> qMain = (
from m in db.ProductsList.OrderByDescending(it => it.GroupCode == 1 || it.L1 == 1)
where m.GoodCode == 1 || m.L1 == 1
select new myProductList
{
StackAmount = m.StackAmount,
GoodCode = m.GoodCode,
PrivateCodeForSort = m.PrivateCodeForSort,
GoodMainCode = m.GoodMainCode,
MaxSellPrice = m.MaxSellPrice,
SellPrice5 = m.SellPrice5,
SellPriceType = m.SellPriceType,
GoodExplain1 = m.GoodExplain1,
Writer = m.Writer,
DragoMan = m.DragoMan,
GoodName = m.GoodName,
Printing = m.Printing,
CoverType = m.CoverType,
PrintYear = m.PrintYear,
PrintPeriod = m.PrintPeriod,
Creation = m.CreationDate
}).OrderByDescending(m=>m.GoodName).Take(50).ToList();
它不会带来整个数据集;您可以查看生成的SQL查询进行确认。否,您给出的代码: 命令结果 过滤结果 预测结果 将结果限制为50 。。。按这个顺序 另一方面,这是一个稍微奇怪的OrderByDescending调用。如果您也希望应用不同的顺序,您也可以轻松地执行此操作-例如:
from m in db.ProductsList
orderby (it.GroupCode == 1 || it.L1 == 1) descending, it.SellPrice5 descending
where m.GoodCode == 1 || m.L1 == 1
select new myProductList
... // code as before
OrderByDescending不是这样工作的-您必须指定您希望它的排序方式。是的,尽管在查询表达式中执行排序会更简单。