2012-03-23 3 views
0

나는 외래 키 CarrierID에 의해 바인더 제본 두 개의 테이블이 있습니다값으로 전망에서 (외국 키의)는 ID 값을 교체

Carrier[CarrierID,CarrierName] 
CarrierID = 1, CarrierName = DHL 
CarrierID = 2, CarrierName = Fedex 

...

Vendor[VendorID, VendorName, CarrierID] 
VendorID = 1, VendorName =D-link , CarrierID=1 
VendorID = 2, VendorName = Netbes , CarrierID= 2 

을 내가 어떻게 할 수 공급 업체 gridView 대신 CarrierID의 값 (CarrierName)을 표시 하시겠습니까? 예 "사전에

View Vendor gridview 
1 | D-link | DHL 
2 | Netbes | Fedex 

감사

당신은 당신이 원하는 것을 달성하기 위해 데이터베이스에보기를 만들 수

답변

0

난 당신이 LinqToSql이 의미 생각 :

var context = new DataContext(); 
System.Data.Linq.DataLoadOptions dlo = new DataLoadOptions(); 
dlo.LoadWith<Vendor>(v => v.Carrier); 
context.LoadOptions = dlo; 
캐리어가 null이 될 수 있기 때문에 당신의 GridView에서

...

gridview.DataContext/ItemsSource = /*my query result of Vendor*/ IQueryable<Vendor>.ToList(); 

{Binding Path=Carrier.CarrierName, FallBackValue=''} 

FallbackValue가 설정됩니다.

+0

@slivermind "DataLoadOptions" 메신저 오류가 점점 그 이름 공간을 찾을 수 없다는 것을 말하고 있기 때문에 –

+0

@ThivakaranSelvarajoo 그것은 System.Data.Linq에있어, 내 대답을 업데이 트했습니다. – Silvermind

+0

DataLoadOptions에는 Carrier가 포함되어 있으므로 DataContext를 삭제하면 LazyLoading의 경우에도 계속 존재하게됩니다. – Silvermind

1

:

SELECT v.VendorName, c.CarrierName FROM Vendor v 
    JOIN Carrier c ON c.CarrierId = v.CarrierId 
+0

이 코드를 사용하여 이동 통신사를 볼 때부터 더 설명 할 수 있습니까? () –