gpt4 book ai didi

c# - Entity Framework 4 中的多对多查询

转载 作者:太空狗 更新时间:2023-10-29 23:55:22 26 4
gpt4 key购买 nike

我的数据库中有一个多对多的关系。两端的表是 BlogPost 和 Item,中间的表是 ItemBlogPost。我需要取回与特定项目相关的所有 BlogPost。在 SQL 中,我会这样做:

SELECT BlogPost.*
FROM BlogPost
JOIN ItemBlogPost ON BlogPost.ID = ItemBlogPost.BlogPost_ID
WHERE ItemBlogPost.Item_ID = @Item_ID

在 C# 中我有类似的东西:

IQueryable<BlogPost> itemBlogPosts = from b in connection.BlogPosts
where b.Items == item.ID
orderby b.Content.CreateDate descending
select b;

但是,标记为 b.Items 的行没有给我 Item 属性的列表,也没有 b.ItemBlogPost 来查看中间表。我也尝试过 b.Items.Contains(item) 但也失败了。如何在 LINQ to EF4 中完成这项工作?

最佳答案

这个怎么样:

var itemBlogPosts = from i in connection.Items
from b in i.BlogPosts // I suppose you have a nav. property on Item
where i.Id == itemId
select b;

同样的查询也可以定义为:

var itemBlogPosts = connection.Items
.Where(i => i.Id == itemId)
.SelectMany(i => i.BlogPosts);

关于c# - Entity Framework 4 中的多对多查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5587288/

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