2012-03-23 53 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