Entity framework 实体框架:关联计数错误

Entity framework 实体框架:关联计数错误,entity-framework,count,Entity Framework,Count,我有一个对象,它与另一个实体有一对多的关系,这个实体是渴望加载的 我使用nerddinner示例中的paginatedList,因此我对完全格式的查询(使用所有关联和过滤器)进行计数 当我进行计数时,返回的总数包括关联(行的重复次数与子关联中的对象数量相同)。 我尝试在父实体上执行一个独特的操作,但不起作用 我能做什么 编辑: 我使用Mysql连接器连接数据库,下面是我的代码: public class Post { [Key] [Column("idPost")] [DatabaseGener

我有一个对象,它与另一个实体有一对多的关系,这个实体是渴望加载的

我使用nerddinner示例中的paginatedList,因此我对完全格式的查询(使用所有关联和过滤器)进行计数

当我进行计数时,返回的总数包括关联(行的重复次数与子关联中的对象数量相同)。 我尝试在父实体上执行一个独特的操作,但不起作用

我能做什么

编辑:

我使用Mysql连接器连接数据库,下面是我的代码:

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; }
}

公共虚拟IQueryable GetAll() { IQueryable query=dbContext.Set(); 返回查询; }
我已经用EF 4.3.1完全尝试了您的代码,
计数
的行为符合预期-它只统计主要实体(
Post
)。它甚至不在数据库中执行任何连接:

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

顺便问一下,为什么要在查询中使用
Include
,只要
Count
?这没有任何意义。

您能展示一下发生这种情况的查询示例吗?同时请展示您的
GetAll
方法。我也使用EF 4.3.1,无法查看生成的sql进行计数(我使用的是MySql数据库)。这是有意义的,因为我在创建查询之前,使用NerdDinner示例的PaginatedList对所有内容进行分页(请参见此处:),否则,有没有方法撤消包含?这是非常重要的信息。您使用的是MySql,因此在实体框架的MySql提供程序中可能会出现一些问题,因为您看到的行为不正确。您的解决方法是使用单独的查询来计算不包含的计数。我对包含的EF6也有同样的问题。如果我用ToList或其他东西具体化查询,它将获得正确的行数,但对查询本身调用count将获得rows*导航属性,而不仅仅是行数。我之所以有include,是因为我在流程的后面使用了导航属性,并试图在一次调用中获取所有内容。这只是一个非常奇怪的行为,我想看到一个解释。
public virtual IQueryable<T> GetAll()
{

    IQueryable<T> query = dbContext.Set<T>();
    return query;
}
SELECT 
[GroupBy1].[A1] AS [C1]
FROM ( SELECT 
    COUNT(1) AS [A1]
    FROM [dbo].[Posts] AS [Extent1]
)  AS [GroupBy1]