Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/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# EF can';获取实体的导航属性的引用实体_C#_Linq_Entity Framework_Linq To Entities - Fatal编程技术网

C# EF can';获取实体的导航属性的引用实体

C# EF can';获取实体的导航属性的引用实体,c#,linq,entity-framework,linq-to-entities,C#,Linq,Entity Framework,Linq To Entities,这是我的模型课 public class Serve { public int Id { get; set; } public Table Table { get; set; } public bool IsFinished { get; set; } public decimal TotalMoney { get; set; } public virtual ICollection<Order> Orders { get; set; } }

这是我的模型课

public class Serve
{
    public int Id { get; set; }
    public Table Table { get; set; }
    public bool IsFinished { get; set; }
    public decimal TotalMoney { get; set; }
    public virtual ICollection<Order> Orders { get; set; }
}
public class Order
{
    public int Id { get; set; }
    public Item Item { get; set; }
    public int Numbers { get; set; }
    public bool IsCheifReceived { get; set; }
    public bool IsCheifCooked { get; set; }
    public Serve Serve { get; set; }

    public Order()
    {
        IsCheifCooked = IsCheifReceived = false;
    }
}

public class Item
{
    public int Id { get; set; }    
    public string Name { get; set; }    
    public string Unit { get; set; }
    public decimal Price { get; set; }    
    public Category Category { get; set; }    
    public bool IsNeedToNotifyChief { get; set; }
}
但是在本例中,在
.GroupBy(m=>m.Item)
m.Item
null
,它将所有订单分组到一个组中。(我知道问题是
m.Item
未加载到此查询中)

在这里,我不知道如何使m.Item加载到这个LINQ查询中。 请帮我做这个


注意:我使用实体框架6,我认为变量服务的是一些对象的列表,而不是查询。如果我是对的,当您从DB获得服务时,您应该包括项目。它看起来像下面的代码:

var serving = db.Serves
                 .Include(x => x.Orders)
                 .Include(x => x.Orders.Select(x => x.Item)) //here you'll get your items
                 .Where(m => m.Table.Id == ta && m.IsFinished == false)
                 .OrderByDescending(m => m.Id)
                 .FirstOfDefault();

//and after that your code should work correctly

if(serving != null) //don't forget check it, if you use FirstOfDefault()
{
   var groupedOrder = serving.Orders
            .OrderByDescending(m => m.Id)
            .GroupBy(m => m.Item) 
            .Select(g => new
            {
                Item = g.Key,
                Numbers = g.Sum(ri => ri.Numbers)
            }).ToList();
}

上面提到的
服务
类的对象。您在哪里初始化
订单
?@X-TECH我问的不是类
服务
,我问的是
服务
variable@Back我说,,这是服务的
对象
,我不知道他在哪里初始化它。右键点击“服务”->“转到定义”将帮助您找到它
var serving = db.Serves
                 .Include(x => x.Orders)
                 .Include(x => x.Orders.Select(x => x.Item)) //here you'll get your items
                 .Where(m => m.Table.Id == ta && m.IsFinished == false)
                 .OrderByDescending(m => m.Id)
                 .FirstOfDefault();

//and after that your code should work correctly

if(serving != null) //don't forget check it, if you use FirstOfDefault()
{
   var groupedOrder = serving.Orders
            .OrderByDescending(m => m.Id)
            .GroupBy(m => m.Item) 
            .Select(g => new
            {
                Item = g.Key,
                Numbers = g.Sum(ri => ri.Numbers)
            }).ToList();
}