C# 将视图中的ID值(外键的)替换为其值

C# 将视图中的ID值(外键的)替换为其值,c#,wpf,linq-to-sql,data-binding,datacontext,C#,Wpf,Linq To Sql,Data Binding,Datacontext,我有两个表,由外键CarrierID绑定: Carrier[CarrierID,CarrierName] CarrierID = 1, CarrierName = DHL CarrierID = 2, CarrierName = Fedex 如何在供应商gridView中而不是CarrierID中显示其值(即:CarrierName)? “例子” 提前感谢您可以在数据库中创建一个视图来完成您想要的: SELECT v.VendorName, c.CarrierName FROM Vendo

我有两个表,由外键CarrierID绑定:

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

如何在供应商gridView中而不是CarrierID中显示其值(即:CarrierName)? “例子”


提前感谢

您可以在数据库中创建一个视图来完成您想要的:

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

我想您对LinqToSql的意思是:

var context = new DataContext();
System.Data.Linq.DataLoadOptions dlo = new DataLoadOptions();
dlo.LoadWith<Vendor>(v => v.Carrier);
context.LoadOptions = dlo;

设置Fallback值是因为Carrier可以为null。

由于我使用此代码查看Carrier…()@SliveMind什么是“DataLoadOptions”,您能解释更多吗“因为我出错了,所以说我找不到namespace@ThivakaranSelvarajoo它在System.Data.Linq中,我已经更新了我的答案。DataLoadOptions包含了Carrier,因此如果您处理DataContext,在LazyLoading的情况下它们仍然会在那里。@Sliverind。。好的,我找到了解决办法。。。我只需要添加这个{Binding Path=Carrier.CarrierName,FallBackValue='''}..和它现在的工作方式..Thx。@sliverind。。。我现在还有一个问题。当我试图编辑运营商名称时,我收到了这个错误“ForeignKeyReferenceAlreadyHasValueException”。
SELECT v.VendorName, c.CarrierName FROM Vendor v
  JOIN Carrier c ON c.CarrierId = v.CarrierId
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();
{Binding Path=Carrier.CarrierName, FallBackValue=''}