2013-02-27 2 views
1

엔티티 프레임 워크를 사용하여 northwind 데이터베이스의 Customer 및 Orders 테이블에 가입하려고하지만 'DataBind'에서 오류가 발생합니다. grdEmployees.DataBind의Entity Framework Join 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(); 
     } 
    } 

오류 메시지() ;: ID 'grdEmployees'과의 GridView의 데이터 소스는 어떤 특성을 가지고 또는 열을 생성 할 수있는 속성을하지 않았다. 데이터 소스가 있는지 확인 내용

발견을 통해 당신은 당신이

을 표시하고 반복 할 모든 열의 특성을 갖는 클래스를해야

grdEmployees.DataSource = found.ToList(); 

바인딩 할 때 당신은 아마 잘못하고있다

+0

WinForms가 비정상적인 형식의 객체 목록에 바인딩하는 것을 원치 않는 것 같습니다. – Aron

답변

1

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 (); 여기에 오류가 발생했습니다! –

+0

C#에서 이렇게하는 경우 이렇게하십시오. 공용 클래스 newClassToShow { public string name {get; 세트; } public string address {get; 세트; } }이 클래스의 객체를 만들고 답안에서 주어진대로 항목에서 열을 할당하십시오. 참고 : - 클래스는 요구 사항을 충족하는 샘플 만 속성입니다. – Betty