linq to entities manytomany navigationproperty count

时间:2011-07-12 16:00:48

标签: .net linq-to-entities

我有以下两个实体:

实体, EntityRelation

Entity类可以通过entity.EntityRelations访问相关对象

我的目标是选择所有Entity对象的列表以及相关EntityRelation对象的计数。我可以这样做:

var results = from e in db.EntitySet.Include("EntityRelations")
    select e;

然后在gridview中获取EntityRelations.Count,但问题是这是由于带有subselect的外连接而生成的一些非常疯狂的SQL。我的问题是:有没有更好的方法来实现我的目标?

我使用.NET 3.5 / VS 2008和SQL Server作为后端。

1 个答案:

答案 0 :(得分:1)

如果您只使用EntityRelations的Count而不使用EntityRelations中的任何其他信息,您可以执行以下操作:

创建一个新类:

class EntityAndCount
{
  public Entity Entity { get; set; }
  public int EntityRelationsCount { get; set; }
}

像这样返回新类:

var results = from e in db.EntitySet
              select new EntityAndCount
              {
                 Entity = e,
                 EntityRelationsCount  = e.EntityRelations.Count()
              };