2011-08-22 78 views
0

我是新来的实体框架,并有一个问题,我一直坚持一段时间。我在我的DAL中有一个存储库来访问其返回的IEnumerable列表中用于定义的函数的数据。这里有两张表格涉及公司和他们的客户订单,请参阅下面的详细信息。我需要为客户订单返回一个Ienumerable列表...其中还包括客户名称。我能够为客户订单表返回所有内容,但无法从相关表中获取客户名称。是否因为我正在返回Ienumerable CustomerOrder类型的列表?如果任何人都可以通过显示正确的代码提供一些帮助,将不胜感激。我再次尝试绑定到从CustomerOrders表中拉出的网格,但还需要显示Customers表中的CustomerName。实体框架返回Parent与子实体一起作为Ieunmerable列表

表1(客户)

COMPANY_ID

CUSTOMER_ID

CUSTOMERNAME

customerAddress

表2(CustomerOrders)

CUSTOMER_ID

PRODUCT_ID

产品名称

productDesc

这是我到目前为止,这并不拉起任何客户的名字,但拉CustomerOrders信息

public IEnumerable<CustomerOrders> GetCustomerOrders(int company_id) 
    { 
     return context.Customers.Where(c => c.company_id == company_id).First().CustomerOrders.ToList().OrderBy(p => p.ProductName); 
}  

回答

0

如何:

return context.CustomerOrders 
       .Include(o => o.Customer) 
       .Where(o => o.customer_id == customer_id); 
+0

嗨碎玻璃我道歉我认为我正在设置一个例子,我的描述早些时候我已经更新了我的描述,我正在通过一个companyID,并且该公司的订单在CustomerOrders表中。请参阅说明,我尝试了您的建议,但没有奏效。 – Shockwave

+0

@Shockwave:什么部分没有工作?应该只需要用'company_id'代替'customer_id'(我也缺少OrderBy) – BrokenGlass

+0

@Shockwave:确保你为'Include'工作添加using语句:'使用System.Data.Entity;''并添加一个对'System.Data.Entity'的引用到您的项目中 – BrokenGlass