2016-06-10 74 views
2

我正在使用实体框架6最新稳定版本与罗斯文数据库。然后我写下如下的查询。即使我没有包括客户订购。还包括实体OrderDetails有Order(这就像递归)。即使我没有包含,OrderDetails的最终包含实体Product也有Category。奇怪的是,供应商是一个导航属性,但它对于产品是空的。实体框架包含和选择是gettind一些其他实体

加:惰性加载和ProxyCreationEnabled是假

var orders = Context.Orders 
      .Include(i => i.Order_Details) 
      .Include(i => i.Order_Details.Select(a => a.Product)) 
      .Where(i => i.EmployeeID == employeeId && i.CustomerID == customerId) 
      .ToList(); 

Product property on Order

而且的OrderDetail的问题

Category and Supplier is so weird

我不能赶上这个是什么?

+0

如果供应商为空意味着数据将不在您的存储库中 –

+0

因为我不想要供应商,以及我不想要类别。没有包含查询,因为你看到 –

+0

那么,你没有'包括'供应商,我们不知道是否一切正常设置,以支持延迟加载供应商。可能不会。你必须显示你的地图,以便我们能够对此进行任何说明。 –

回答

0

,你可以把一个选择,如果你不想不想要的数据从table.you可以选择匿名或使用视图模型类做

var orders = Context.Orders 
      .Include(i => i.Order_Details) 
      .Include(i => i.Order_Details.Select(a => a.Product)) 
      .Where(i => i.EmployeeID == employeeId && i.CustomerID == customerId) 
      .Select new 
      { 
       //here you can select the fields which all are you required 
      } 

  .Select new requireddatavm 
      { 
       //here you can select the fields which all are you required 
      } 

在方法的语法,用其他运营商:

.Where(i => i.EmployeeID == employeeId && i.CustomerID == customerId) 

,返回包含字段在内的整行