中检索数据的子集我有一个可以使用外键的工作EF系统,这样可以将我的所有客户数据都拉回到商店或连锁店。实体框架从
我使用下面的代码获取数据。
var foo = from s in context.Shops
where (s.ShopId == shopId)
select s;
商店的导航属性定义为;
[ForeignKey("ShopId")]
public virtual ICollection<CustomerOrder> CustomerOrders { get; set; }
除其他外,CustomerOrder包含状态和完成日期。
因此,目前在我的代码中,我有以下内容,返回自特定日期以来已完成的所有已完成订单(状态7)。
[NotMapped]
public virtual List<CustomerOrder> TotalCompletedCustomerOrders(DateTime dt)
{
return (from co in CustomerOrders where co.Status == 7 && co.CompletedDate > dt select co).ToList();
}
这是我检索数据的最有效方式吗? (我明白,直到枚举集合才能检索到客户订单,但即使这样,系统也必须处理潜在的数千条记录,以查找日期之后完成的记录。 是否可能或需要将状态和/或日期包含在原来的查询?
我曾尝试在以下几个变化,但没有工作。
where (d.ParentBusinessId == parentId && (d.CustomerOrders.Select(co => co.Status == 7)))
还是我在工程这个过程?(从理论上讲,我想选择数据的方法从数据库中获取状态和可选日期,因此当我将数据传递到网页时,它只需要显示它)
如果你不确定,给这个http://www.hibernatingrhinos.com/products/efprof,这个工具也会提供一些你在做什么错误的帮助(即,选择n + 1等) – dbones 2013-04-26 15:18:23