在将查询发送到服务器以检索过滤结果之前,我有很多问题要正确构建查询,首先我正在查询订单的空洞结果集,然后在尝试时应用具有计算属性的订单项目过滤器重构以仅获取与项目条件匹配的订单集,当然我得到了错误:LINQ to Entities 不支持指定的类型成员“ReceivableQuantity”。仅支持初始化程序、实体成员和实体导航属性。在工作代码下方:
pendingOrders = from o in this.GetAll()
where o.OrderItems.Where(i => i.ReceivableQuantity > 0).Count() > 0
select new Order()
{
OrderNumber = o.OrderNumber,
Comments = o.Comments,
FinalApprover = o.FinalApprover,
OrderDate = o.OrderDate,
Requisitioner = o.Requisitioner,
SupplierName = o.SupplierName,
ID = o.ID,
ShoppingCartName = o.ShoppingCartName,
OrderItems = (from i in o.OrderItems
where i.ReceivableQuantity > 0
select i).OrderBy(i => i.LineNumber).ToList()
};
这是 OrderItem 类中的 NotMapped 属性:
[NotMapped]
public decimal ReceivableQuantity
{
get
{
if (Order == null)
return 0;
decimal response;
response = this.MatchedQuantity - this.ReceivedQuantity;
if (response >= 0)
return response;
else
throw new ArgumentOutOfRangeException("Receivable Quantity must be greater than 0.");
}
}
MatchedQuantity 和 ReceivedQuantity 也是 NotMapped 属性,所以我认为这确实在扩展。
我应该使用什么最好的方法,现在使用它的网站已经在运行,并且随着数据库每天都在增长,使用代码的功能变得非常缓慢。
在此先感谢您的帮助。廖。