Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/solr/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# EF4 Linq-使用相关表中的条件获取顶级项_C#_Linq_Entity Framework_Entity Framework 4_Linq To Entities - Fatal编程技术网

C# EF4 Linq-使用相关表中的条件获取顶级项

C# EF4 Linq-使用相关表中的条件获取顶级项,c#,linq,entity-framework,entity-framework-4,linq-to-entities,C#,Linq,Entity Framework,Entity Framework 4,Linq To Entities,我有3个表需要包含在EF4中的linq查询中。Am还使用dbcontext生成器生成poco类。linq查询正在查询poco对象 希望下面能够清楚地解释表在底层数据库中的关系 订单详细信息>-1书籍1-

我有3个表需要包含在EF4中的linq查询中。Am还使用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的属性

这些信息是否足以说明发生了什么。有人有什么建议吗

谢谢


机翼

似乎是装载策略有问题。 您需要在查询中删除相关对象

您可以在本页上找到许多示例,例如:

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

如果你已经正确设置了延迟加载,我认为你不需要使用include,对吗?是否启用了延迟加载?BookCategories属性是否标记为virtual?可能我没有正确解释表关系。请参阅修订后的导言。我还将dbcontext生成器用于poco类。@wingyip:您是否尝试以与我的示例和链接类似的方式包含
书籍
?是的,但没有乐趣。此外,在我的EF版本中,您在上面的Include中使用的括号中的语法不被识别。当您说“无法访问BookCategories的属性”时,您的意思是什么?你得到一个空引用吗?空的收藏?EF正在生成什么sql?(
string sql=topSellingBooks.ToString();