LINQ to Entities - “包括”复杂对象,同时也进行分组

时间:2009-12-02 16:35:56

标签: linq-to-entities

我有一组需要选择不同的任务(在L2E中分组)。这些任务有一个引用属性,我需要加载“Activity”,以便我可以引用task.Activity对象。在下面的第一个例子中,这很好。但是,当我按描述进行分组时,活动不会被加载。我错过了什么?

tasks = 
    (from x in Db.Task.Include("Activity") select x)
    .ToList();

tasks =
    (from x in Db.Task.Include("Activity")
     group x by x.Description
     into groupedByDescription
         select groupedByDescription.FirstOrDefault()).ToList();

2 个答案:

答案 0 :(得分:2)

groupedByDescription不是实体;它是一组实体。选择实体时,您只能Include

更多信息是in this tip

很难在不知道您要解决的问题的情况下提供解决方法。

答案 1 :(得分:0)

我想解释一下这个问题,因为我认为这个问题没有得到解答。

基于此处的示例: IQueryable的> prodQuery =     来自db.Products中的prod     group prod by prod.CategoryID into grouping     选择分组;

foreach (IGrouping<Int32, Product> grp in prodQuery)
{
    Console.WriteLine("\nCategoryID Key = {0}:", grp.Key);
    foreach (Product listing in grp)
    {
        Console.WriteLine("\t{0}", listing.ProductName);
    }
}

如果表Product与表T_Category具有外键关系,则访问该类别的唯一方法是通过db.Product.T_Category.CategoryID。如果是这种情况,是否可以在T_Category中获取其他信息,例如T_Category.CategoryName?

的IQueryable&GT; prodQuery =     来自db.Products.include(“T_Category”)中的prod     group prod by prod.T_Category.CategoryID into grouping     选择分组;

foreach (IGrouping<Int32, Product> grp in prodQuery)
{
    Console.WriteLine("\nCategoryID Key = {0}:", grp.Key);
    foreach (Product listing in grp)
    {
        Console.WriteLine("\t{0}", listing.ProductName);
        Console.WriteLine("\t{0}", listing.T_Category.CategoryID);
        Console.WriteLine("\t{0}", listing.T_Category.CategoryName);
    }
}