实体框架:与关联错误计数

时间:2012-03-25 19:21:18

标签: entity-framework count

我有一个与另一个真正加载的实体有一对多关系的对象。

我使用了nerddinner示例的paginatedList,因此我对完全形成的查询进行了计数(包含所有关联和过滤器)。

当我进行计数时,返回的总数包括关联(行重复次数与子关联中的对象数一样多)。 我尝试在父母权利上做一个明确的但是它不起作用。

我该怎么办?

编辑:

我使用Mysql连接器连接到db,这是我的代码:

public class Post
{
[Key]
[Column("idPost")]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int ID { get; set; }

[Column("title")]
[Required(AllowEmptyStrings = false)]
public string Title { get; set; }

(....)


[InverseProperty("Post")]
public ICollection<PostCategory> Categories { get; set; }

}

public class PostCategory
{
[Key, Column("idPost", Order = 0)]
public int PostID { get; set; }

[Key, Column("name", Order = 1)]
public string Category { get; set; }

[Association("PostCategory_Post", "PostID", "ID")]
public virtual Post Post { get; set; }
}

//电话

postRepository.GetAll().Includes(p => p.Categories).Count();

public virtual IQueryable<T> GetAll()
{

    IQueryable<T> query = dbContext.Set<T>();
    return query;
}

1 个答案:

答案 0 :(得分:1)

我已经使用EF 4.3.1准确地尝试了您的代码,而Count的行为符合预期 - 它只计算主要实体(Post)。它甚至不在数据库中执行任何连接:

SELECT 
[GroupBy1].[A1] AS [C1]
FROM ( SELECT 
    COUNT(1) AS [A1]
    FROM [dbo].[Posts] AS [Extent1]
)  AS [GroupBy1]

顺便说一下。为什么您在Include的查询中使用Count?这毫无意义。