我有 3 个表需要包含在 EF4 的 linq 查询中。我还使用 dbcontext 生成器来生成 poco 类。linq 查询正在查询 poco 对象。
希望下面能清楚地解释底层数据库中的表是如何相关的。
OrderDetails > - 1 Books 1 - < BookCategories
如您所见,一本书可以有许多类别,而一本书可以出现在许多订单上。
我正在尝试获得特定类别中最畅销的书籍。
到目前为止,我已经设法获得了总体上最畅销的书籍,但我似乎无法将其扩展为在 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"
符合我上面的条件,但这似乎是不可能的。我无法使用上述方法访问 BookCategories 的属性。
这是足够的信息来看看发生了什么。有人有任何指示吗?
谢谢
翅膀