我是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;
}
}
答案 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 = ...
}
}