我有一个名为EmailLog的实体,其中包含数据库中的To,From,Subject,Body等条目。
我想在查询多行时排除Body的效率/性能。不确定如何实现这一目标。我尝试使用投影(见下文),但我收到运行时错误,说我无法投影到实体类型。
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?
答案 0 :(得分:0)
正如我的评论中所提到的,调用def drawArrow(A, B, axis):
axis.arrow(A[0], A[1], B[0] - A[0], B[1] - A[1], head_width=0.2, head_length=10)
将不会枚举您的结果,它是延迟执行的Linq方法之一。因此,如果您对没有Body的类进行投影,您仍然可以将生成的Select()
传递给IEnumerable
方法。