2013-02-27 91 views
1

我想通过使用实体框架加入Northwind数据库上的Customer和Orders表,但是我在'DataBind'上遇到错误。实体框架加入Stuck

public void CustomerJoin() 
    { 
     using (var ctx = new northwindContext()) 
     { 
      var found = from mycust in ctx.Customers 
         join cust in ctx.Orders on mycust.CustomerID equals cust.CustomerID 
         select new { Customer = mycust, Order = cust }; ; 
      grdEmployees.DataSource = found.ToList(); 
      grdEmployees.DataBind(); 
     } 
    } 

grdEmployees.DataBind的错误消息();: ID为“grdEmployees”的GridView的数据源没有任何属性或从其属性生成列。确保您的数据源有内容

+0

看起来像WinForms不喜欢绑定到异常类型对象的列表。 – Aron 2013-02-27 09:08:04

回答

1

你可能做错了,当你结合

grdEmployees.DataSource = found.ToList(); 

你应该有你想显示

和迭代所有列的属性一类通过发现像这样

list<newClassToShow> itemsToBind = new <newClassToShow>(); 
foreach(var item in found.ToList()) 
{ 
    newClassToShow it = new newClassToShow() 
it.property1 = item.column1;//do this for all item 
itemToBind.add(it); 
} 

现在绑定列表gridEmployee

+0

List itemsToBind = new ();在这里得到一个错误! – 2013-02-27 08:15:31

+0

如果你在c#中这样做,可以这样做。 public class newClassToShow { public string name {get;组; } public string address {get;组; } }创建这个类的对象,并在答案中给出来自项目的列。注意: - 类只是样本make属性,与您的需求相同 – Betty 2013-02-27 09:50:30