gpt4 book ai didi

entity-framework - Entity Framework 4 INNER JOIN 帮助

转载 作者:行者123 更新时间:2023-12-02 08:57:52 24 4
gpt4 key购买 nike

谁能告诉我如何在 Entity Framework 4.0 中编写以下查询? “博客”和“类别”是我的实体。该查询基本上返回类别列表以及该类别中的博客数量。

SELECT b.CategoryId, c.Value, Count(b.Id) AS [Count] FROM dbo.Blogs b
INNER JOIN dbo.Categories c ON b.CategoryId = c.Id
GROUP BY b.CategoryId, c.Value

提前致谢。

最佳答案

以下内容应该有效(LinqToEntities):

var categories = from c in oc.Categories
select new
{
CategoryId = c.Id,
c.Value,
Count = c.Blogs.Count()
}

这将为您提供类别 ID 和值的列表,对于每个类别 ID,您可以获得该类别中的博客数量。

编辑:要回答评论中的问题:这在 LinqToEntities 中是不可能的,但您可以在 Entity SQL 中做到这一点。

var results = new ObjectQuery<DbDataRecord>(
@"SELECT y, COUNT(y)
FROM MyEntities.Blogs AS b
GROUP BY YEAR(b.CreatedDate) AS y", entities).ToList();
var nrBlogsPerYear = from r in results
select new { Year = r[0], NrBlogs = r[1] };

在 Entity SQL 查询中,您应该将 MyEntities 替换为您的上下文名称。

编辑:正如我刚刚通过克雷格的评论发现的那样,按年份分组 is possible在 L2E 中,您可以像这样编写查询:

    var nrBlogsPerYear = from b in oc.Blogs
group b by b.CreatedDate.Year into g
select new { Year = g.Key, NrBlogs = g.Count() };

关于entity-framework - Entity Framework 4 INNER JOIN 帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3484729/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com