2012-03-23 41 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; 

...

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

在你的GridView

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

的FallbackValue設置,因爲運營商可以爲空。

+0

@slivermind會是怎樣的「DataLoadOptions」因爲即時獲取錯誤說,不能找到命名空間 – 2012-03-23 19:01:00

+0

@ThivakaranSelvarajoo它在System.Data.Linq,我已經更新了我的答案。 – Silvermind 2012-03-23 19:09:01

+0

DataLoadOptions包含載體,所以如果你處置DataContext,它們在LazyLoading的情況下仍然存在。 – Silvermind 2012-03-23 19:10:14

1

你可以在數據庫中創建一個視圖來完成你想要的東西:

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

你能解釋更多,因爲我使用此代碼,以查看所述載體...() – 2012-03-23 18:36:53