2013-02-12 27 views
0

我有两个关联的实体。我通过拖放对象数据源和手动绑定到列表来创建一个dataGridView。一切正常工作与一个实体。有没有可能通过拖放+手动填充来创建一个包含两个实体(Zamow和ZamSkany)的dataGridView?我可以通过查看(在SQL方面)做到这一点,但在同样的情况下,我想有其他的可能性。两个实体在一个dataGridView中

pg = new PGEntities(); 
BindingList<Zamow> myList; 
var query = (from zam in pg.Zamow where zam.Rok == 2012 select zam).Take(100); 
MyList = new BindingList<Zamow>(query.ToList()); 
zamowBindingSource.DataSource = MyList; 

enter image description here

回答

0

是,尝试创建Class,让说ViewZamowAndSamSkany

public class ViewZamowAndSamSkany 
{ 
    public string Data { get; set; } 
    public string Proforma { get; set; } 
    //and Others Properties 
} 

现在,重建项目,并从Objects Data SourceViewZamowAndSamSkany然后拖放添加到您的Form作为一个DataGridView,你可以申请linq-entites inner join

var query = (from zam in pg.Zamow 
      join skany in zam.NUMBER equals skany.NUMBER 
      where zam.Rok == 2012 
      select new ViewZamowAndSamSkany 
      { 
       Data = zam.Data, 
       Proforma = zam.Proforma 
      }).Take(100); 

MyList = new BindingList<ViewZamowAndSamSkany>(query.ToList()); 
zamowBindingSource.DataSource = MyList; 
+0

非常感谢!它像一个魅力。 – mds 2013-02-13 07:31:47

+0

不客气':D' – spajce 2013-02-13 07:35:55