![](/img/trans.png)
[英]Exclude results from Linq query excluding everything when exclude list is empty
[英]excluding a column in query results
我有一個名為EmailLog的實體,在數據庫中具有諸如To,From,Subject,Body等條目。
查詢多個行時,我想排除Body的效率/性能。 不太確定如何做到這一點。 我嘗試使用投影(請參見下文),但是出現運行時錯誤,提示我無法投影到Entity類型。
var results = Repository.Find<EmailLog>().Select(x => new EmailLog
{
Id = x.Id,
Subject = x.Subject,
Recipient = x.Recipient,
Status = x.Status,
FirstAttempted = x.FirstAttempted,
LastAttempted = x.LastAttempted,
Attempts = x.Attempts
});
這是可以理解的。 我可以創建一個沒有Body的新類,並在其上進行投影,但是我正在對查詢應用分頁,並且直到應用分頁選項后才想評估結果。 我的分頁功能如下所示:
public static PagedList<T> ApplyPagingAndSorting<T>(this IEnumerable<T> list,
IPaginationOptions paginationOptions)
它接受一個可枚舉的列表,並將Skip()和Take()應用於列表,然后枚舉它。 因此,如何確保將IEnumerable列表傳遞給尚未枚舉的函數,但最終枚舉或求值時關聯的查詢未選擇Body?
如我的評論中所述,調用Select()
不會枚舉您的結果,這是延遲執行的Linq方法之一。 因此,如果對沒有Body的類進行投影,則仍然可以將所得IEnumerable
傳遞給ApplyPagingAndSorting()
方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.