Hi,
I have a User entity which represents a User table in my database. This table has a field called ManagerID
which references another User record (basically an employee to manager mapping). Each User will also have a reference to another table which can have multiple entries, for the sake of this example we will call it Records
.
So the basic rule is every user can have multiple Records and every user can manage a team of other Users.
So as a small example of what I need to do:
User manager = Repository.FindUser('12345');
List<Record> TeamRecordCollection = new List<Record>();
// add the managers records to the team collection
var managerRecords = GetRecords(manager, DateTime.Today);
TeamRecordCollection.AddRange(managerRecords);
// add each individual team members records
foreach (var user in manager.TeamMembers)
{
var records = GetRecords(user, DateTime.Today);
TeamRecordCollection.AddRange(records);
}
...
private IEnumerable<Record> GetRecords(User user, DateTime date)
{
var records = from rec in user.Records
where rec.DateSubmitted == date
select rec;
return records.AsEnumerable();
}
// the above code isn't tested it is just a sample idea
So what I would like to know is:
a) Can this be done in the one L2S statement?
b) Would it be more efficient than the current way?