簡體   English   中英

排除查詢結果中的列

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM