EF4 Linq-使用相关表格中的条件获取热门项目

本文关键字:条件 获取 热门 项目 表格 Linq- EF4 | 更新日期: 2023-09-27 18:28:59

我有3个表需要包含在EF4中的linq查询中。我还使用dbcontext生成器生成poco类。linq查询正在查询poco对象。

希望下面能清楚地解释表在底层数据库中的关系。

订单详情>-1书籍1-<图书类别

正如你所看到的,一本书可以有很多类别,一本可以出现在很多订单上。

我正在努力获得某一特定类别的畅销书。

到目前为止,我已经设法获得了如下畅销书,但我似乎无法将其扩展到包括一个图书类别作为中where条款的标准

var topSellingBooks = (from p in this.context.OrderDetails
                        where p.IssueId == issueId && p.PublicationId != "4TC" 
                        group p by p.BookId
                        into bookGroup
                        select new 
                            { 
                                BookNo = bookGroup.Key, 
                                BookCount = bookGroup.Sum(q => q.Quantity) 
                            }).OrderByDescending(q => q.BookCount)
                              .Take(noOfBooks);

使用导航属性,我希望我可以添加

&& p.Books.BookCategories.CategoryId_FK=="MyCatId"

按照我上面的where标准,但这似乎是不可能的。我无法通过使用以上内容访问BookCategories的属性。

这足够了解情况了吗?有人有线索吗?

感谢

机翼

EF4 Linq-使用相关表格中的条件获取热门项目

加载策略似乎有问题。您需要在查询中包含相关对象。

阅读什么是急切和懒惰的加载,你会在这个页面上发现很多例子,比如:

var blogs = context.Blogs
                   .Include(b => b.Posts.Select(p => p.Comments))
                   .ToList();