2015-04-21 40 views
0

我需要加入使用,我已经创建了这两个公共类(PDData & EIDData加入使用类C#WPF LINQ的

下面这两个表(tblProjects & tblEmployeeLoginDetails)的LINQ表是我的Join编码,我填写我的数据网格:

private void FillProjectsDataGrid() 
    { 
     using (DataClassesDataContext DC = new DataClassesDataContext()) 
     { 
      var Join = (from a in DC.tblEmployeeLoginDetails 
         join b in DC.tblProjects 
         on a.LoginID equals b.ProjectID 
         where b.ProjectID != null 
         select new 
         { 
          b.ProjectID, 
          b.ProjectName, 
          b.ProjectStatus, 

          a.EmployeeName, 
          a.EmployeeSurname 
         }).ToList(); 

      dgViewProjects.ItemsSource = Join; 
     } 
    } 

这个连接工作,我可以填写我的datagrid,但我需要将两个表中的值等于我创建的两个类。

示例:EIDData.Name = a.EmployeeName

我的类编码:PDData

public struct PDData 
{ 
    public string _project; 

    public int ProjectID { get; set; } 
    public string Name { get; set; } 
    public string Status { get; set; } 
    public string Employee { get; set; } 
} 

EIDData

public struct EIDData 
{ 
    public string _sts; 

    public int UserID { get; set; } 
    public string Name { get; set; } 
    public string Surname { get; set; } 
    public string Email { get; set; } 
    public string Password { get; set; } 
    public string Role { get; set; } 
    public string Department { get; set; } 
    public string IDNumber { get; set; } 
    public string Gender { get; set; } 
    public DateTime Date { get; set; } 
    public string HomeAddress { get; set; } 
    public string Telephone { get; set; } 
    public string City { get; set; } 
    public string Province { get; set; } 
    public Binary SetImage { get; set; } 
} 

我有不知道如何做到这一点。 我想在连接中使用这些类,因为在我的datagrid的selection selection changed事件中管理所有数据会更容易。

任何人有想法或建议,将不胜感激!谢谢。

编辑:这里是我的选择更改事件为我的datagrid万一任何人需要它。

private void dgViewProjects_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     using (DataClassesDataContext DC = new DataClassesDataContext()) 
     { 
      tblProject tblP = new tblProject(); 
      lblProjectName.Content = tblP.ProjectName.ToString();     
     } 
    } 

我再一次我点击一排得到这个错误:

类型的未处理的异常“System.NullReferenceException” 发生在Haze.exe

其他信息:对象引用未设置为 对象的实例。

回答

0

也许创建字典

   var dict = (from a in DC.tblEmployeeLoginDetails 
 
          join b in DC.tblProjects 
 
          on a.UserID equals b.ProjectID 
 
          select new {key = a.UserID, value = new {employee = a, project = b}}) 
 
          .ToDictionary(x => x.key, y => y.value) ;