实体框架 - 获得计数的最佳实践

时间:2014-09-07 12:08:31

标签: entity-framework entity-framework-6

我有一个Customer表和另一个Orders表。每个客户可以有很多订单(一对多的关系)。

我想获得一个Customer对象,并从中得到他有多少订单(此时实际订单数据不相关)。所以我看到它有两个选择:

  1. 使用另一个OrdersCount字段创建一个视图 - 这将是我系统中的另一个对象。
  2. 在我的应用程序中,当我需要计数时获取Customer.Orders.Count - 但据我所知,这将导致额外的查询运行并将所有订单从数据库拉到该集合。
  3. 有没有正确的方法来做这件事?

    由于

1 个答案:

答案 0 :(得分:1)

您确实需要新类型,但不需要重新创建所有相关属性。

from c in context.Customers
// where ...
select new {
  Customer = c,
  OrderCount = c.Orders.Count()
}

更新查找例如结果中项目的Name属性,以查找Customer.Name