我有一個用戶實體,它表示我的數據庫中的用戶表。此表有一個名爲ManagerID
的字段,它引用另一個用戶記錄(基本上是員工到經理的映射)。每個用戶也可以參考另一個可以有多個條目的表格,爲了這個例子我們將其稱爲Records
。LINQ to SQL查詢
所以基本規則是每個用戶都可以有多個記錄,每個用戶都可以管理一個其他用戶組。
所以當什麼,我需要做一個小例子:
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
所以我想知道的是:
一)這能在一個L2S語句來完成?
b)它會比現在的方式更有效嗎?
我認爲這看起來不錯喊,雖然Where語句將不得不改變,以user.ManagerID == ||經理ID user.ID == managerID),因爲經理可以有記錄。 – James 2009-11-17 15:52:32
@詹姆斯:固定的,我認爲這應該工作。不知道性能影響是什麼,也許做一些基準測試? – Kirschstein 2009-11-17 16:17:17
不得不稍微調整一下,但總的來說,這幫助我整理出來,謝謝。是的,我會做一些基準測試,以測試它是否是最有效的方法。 – James 2009-11-17 19:48:03