【发布时间】:2012-10-15 20:04:19
【问题描述】:
我试图从 RedGate 的这本免费电子书中了解 Linq 的一些性能影响 ftp://support.red-gate.com/ebooks/under-the-hood-of-net-memory-management-part1.pdf
在本书的第 157-158 页,他们创建了以下示例。
Order[] pastDueAccounts = null;
DateTimedueDate = DateTime.Today.AddDays(-7);
using(varcontext = new Context())
{
pastDueAccounts = context.Accounts.Where(account => account.DueDate < dueDate).ToArray();
}
然后他们将部分 lamda 表达式重构为以下函数。
public bool PastDueAccount(Account account)
{
return account.DueDate < DateTime.Today.AddDays(-7);
}
最后他们使用这个函数如下。
Order[] pastDueAccounts = null;
using(varcontext = new Context())
{
pastDueAccounts = context.Accounts.Where(account => PastDueAccount(account)).ToArray();
}
根据我目前的研究,无法运行此 linq 查询,因为 LINQ 无法识别该方法并且无法转换为存储表达式。我想知道这个示例是否错误并且根本无法运行,或者我只是很难了解如何模拟这个问题?
【问题讨论】:
标签: c# .net linq entity-framework-4 linq-to-entities