2
我正在使用Linq和MySql數據庫。我試圖從列表中獲得前10個結果,但Linq's Take不會過濾結果,它只返回所有59個結果。Linq不工作
這是代碼:
List<EComQuoteSearchModel> results = new List<EComQuoteSearchModel>();
//do not included quotes marked as deleted in the search results
// int deletedStatusId = (int)IMSourcingPortal.Services.ecomQuoteSystem.EComQuoteStatus.Deleted;
//&& qo.nquote_status.StatusId != deletedStatusId
results = (from qo in db.nquote_orderheaders
join st in db.nquote_status on qo.StatusId equals st.StatusId
where (qo.QuoteOrderNumber.Contains(term)
|| qo.nquote_status.Name.Contains(term)
|| qo.CustomerName.Contains(term)
|| qo.IMCustomerNumber.Contains(term))
select new EComQuoteSearchModel()
{
CustomerName = qo.CustomerName,
CustomerNo = qo.IMCustomerNumber,
QuoteNo = qo.QuoteOrderNumber,
Status = st.Name
}).ToList();
IEnumerable<EComQuoteSearchModel> firstTen = results.Take(10);
var toret = firstTen.ToList();
return toret;
任何想法理解。
在ToList()之前使用Take() – MikeSW
請向您自己證明您打印出59個文件的代碼。 (另外,在調用'Take'之前,你不應該使用'.ToList',因爲這將迫使你總是從數據庫中下載所有行,而不是讓後端做這件事) –
@MikeSW,我嘗試使用Take ToList(),但結果是一樣的。 –