Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在c中将联接查询结果绑定到Gridview_C#_Linq_Gridview_Join_Bind - Fatal编程技术网

C# 在c中将联接查询结果绑定到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

我试图使用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 
    { 
        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();