【发布时间】:2015-01-21 06:39:20
【问题描述】:
我已经为主要实体customer 和相关实体(订单)编译了查询。
var customer = MyService.GetCustomer<Customer>().where(c => c.Id == fooId).ToList();
var customerOrders = MyService.GetOrders<Order>().where(o => o.CustomerId == fooId && o.IsActive).ToList();
但我认为我可以通过导航属性而不是编译查询调用来获取所有订单,因为customer 已经通过以下代码加载到内存中:
var customerOrders = customer.Orders.where(o => o.IsActive).ToList(); // I didn't do filter further more
但是当我测量时间时,我找不到任何明显的差异(数据库有 500 个客户和 4000 个订单。每个特定客户都有 30 个活跃订单和大约 400 个非活跃订单)。
这两者中哪一个的性能更好?
我无法完全理解这个related question
【问题讨论】:
标签: c# performance entity-framework navigation-properties compiled-query