如何使用Linq to Sql填充复杂的对象

时间:2019-02-05 02:59:03

标签: c# linq

我是Linq的新手。我必须使用Linq to Sql将数据从sql server投影到复杂的对象。复杂对象是Employee类,该类具有另一个类EmployeeDetail作为属性。我能够填充Employee类,但无法填充EmployeeDetail。我已在下面附上我的代码。显然,我必须在选择新的Employee块中实例化EmployeeDetail并将其附加。不幸的是,我不知道该怎么做。

public class Employee
{
    public String Email { get; set; }        
    public String EmployeeId { get; set; }   
    public EmployeeDetail employeeDetail { get; set; }    
}

public class EmployeeDetail
{
    public String PhoneNumber { get; set; }
    public String Address { get; set; }
}

public class Data
{
    public List<Employee> GetEmployee()
    {
        EmployeeDataContext dbDontext = new EmployeeDataContext ();

        var employees = from i in dbDontext.Employee
                    join m in dbDontext.Employee on i.Employee_Id equals 
                    m.Emplyee_Detail_Id
                    select new Employee
                    {
                        Email = i.email,
                        EmployeeId = i.employee_Id.ToString(),
                        //how to get data for the EmployeeDetail property 
                        //with PhoneNumber  and Address values populated?
                    };
        var employeeList = employees.ToList();
        return employeeList;
    }
}

1 个答案:

答案 0 :(得分:1)

这实际上不是LINQ问题,更多的是对象初始化程序问题。初始化对象时,可以设置其属性:

new Employee
{
    Email = i.email,
    EmployeeId = i.employee_Id.ToString() 
}

相同的语法适用于其对象类型属性:

new Employee
{
    Email = i.email,
    EmployeeId = i.employee_Id.ToString(),
    employeeDetail = new EmployeeDetail
    {
        PhoneNumber = ...,
        Address = ...
    }
}
相关问题