If you have an existing Employee entity...just use it. You don't have to create an intermediate class if you don't want one. Type initializers will work on any class that has public get/set properties. Or, if you require an abstracted creation process (such as through a factory, you can call your factory method directly from the LINQ statement):
// Employee entity
class Employee
{
public int ID { get; set; }
public string Name { get; set; }
// ...
}
// Employee factory
static class EmployeeFactory
{
static Employee Construct(int id, string first, string last //, ...)
{
Employee emp = new Employee();
emp.ID = id;
emp.Name = last + ", " + first;
return emp;
}
}
// Query
IEnumerable employees = from e in db.Employee
where e.DateHired > DateTime.Now.AddMonths(-6)
select EmployeeFactory.Construct(e.ID, e.First, e.Last);
IList employeeList = employees.ToList();