C# 在c中将联接查询结果绑定到Gridview
我试图使用linq或entityframework将两个联接表的结果绑定到我的gridview中 我有 我正在使用此查询绑定:C# 在c中将联接查询结果绑定到Gridview,c#,linq,gridview,join,bind,C#,Linq,Gridview,Join,Bind,我试图使用linq或entityframework将两个联接表的结果绑定到我的gridview中 我有 我正在使用此查询绑定: var queryResult = (from maindata in db.EmployeeData_Main join subData in db.EmployeeData_Sub on maindata.MainID equals subData.MainID select new { E
var queryResult = (from maindata
in db.EmployeeData_Main
join subData in db.EmployeeData_Sub
on maindata.MainID equals subData.MainID
select new
{
EmployeeData_Main = maindata,
EmployeeData_Sub = subData
})
.ToList();
GV.DataSource = queryResult;
GV.DataBind();
我使用EmployeeData_Main.FirstName等绑定字段,但出现以下例外情况:
DataBinding: '<>f__AnonymousType0`2[[HR.EmployeeData_Main, HR, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null],
[HR.EmployeeData_Sub, HR, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null]]' does not contain a property with the name 'MainID'.
我读了一些主题,比如
&
然而,我仍然得到同样的例外。如何成功绑定结果网格似乎正在尝试查找属性queryResult.MainID,而它应该查找queryResult.EmployeeData_Main.MainID。我不知道这是否真的可能 您可以明确声明要选择的字段,如:
var queryResult = (from maindata in db.EmployeeData_Main
join subData in db.EmployeeData_Sub on maindata.MainID equals subData.MainID
select new {
maindata.MainID,
maindata.FirstName ,
maindata.SecondName ,
maindata.LastName ,
maindata.DateOfBirth,
subData.SubID ,
subData.Address,
subData.Email,
subData.Tele,
subData.MainID-FK-
}).ToList();
您的列表是一个匿名类型的列表,只有两个属性:EmployeeData_Main和EmployeeData_Sub 然后,要绑定的属性是EmployeeData_Main.MainID,它不是匿名类型的直接部分。所以你的绑定无法工作 我不知道您是否使用WebForms或WPF中的GridView,但在WPF中,您可以通过以下方式绑定它:
{ EmployeeData_Main.MainID }
或者,您可以在匿名类型中选择您的属性:
var queryResult = (from maindata in db.EmployeeData_Main
join subData in db.EmployeeData_Sub
on maindata.MainID equals subData.MainID
select new { MainID = maindata.MainID, EmployeeData_Main = maindata, EmployeeData_Sub = subData })
.ToList();
我试图用“选择新”来投影结果{FN=maindata.FirstName,SN=maindata.SecondName,LN=maindata.LastName,DOB=maindata.DateofBirth,SubID=subData.SubID,Address=subData.Address,Email=subData.Email,Tele=subData.Tele}.ToList;'&使用FN SN等绑定,但不起作用
var queryResult = (from maindata in db.EmployeeData_Main
join subData in db.EmployeeData_Sub
on maindata.MainID equals subData.MainID
select new { MainID = maindata.MainID, EmployeeData_Main = maindata, EmployeeData_Sub = subData })
.ToList();