我在數據庫中有典型的表,如用戶,用戶組,他們有關係。快速/正確的方式來創建數據庫的域對象
在我的域模型中,我希望如果您請求用戶,您將獲得用戶,並且每個用戶都擁有屬性belongssto,這意味着這些是他所屬的組。在屬性我想有組的列表(類型安全爲組)
另一方面應該做同樣的,這意味着每個組應該知道哪些用戶屬於該組。
我有這個類(例如):
public class User
{
int Id { get; set; }
string Name { get; set; }
List<Usergroup> BelongsTo { get; set; }
User()
{
BelongsTo = new List<Usergroup>();
}
}
public class Usergroup
{
int Id { get; set; }
string Name { get; set; }
List<User> Users { get; set; }
Usergroup()
{
Users = new List<User>();
}
}
internal class Relation
{
int userId;
int groupId;
}
現在,最新最好的方式來實現它,並且什麼讓所有物體充滿了最快的方式。
btw:我使用subsonic獲取所有數據庫記錄(對於每個表選擇)。並且至少有1500個用戶和30個組。
我目前的代碼是基於foreach的羣組,relations.where爲groups,然後users.singleordefault來查找用戶,然後將用戶添加到組和用戶組中。但它需要appx 30secs來做到這一點。
我的客戶端應用程序是一個web應用程序,所以我把所有的結果存儲在一個緩存的存儲庫,這就是爲什麼我這樣做的方式!
謝謝你的tipp,但那就是我不想做的。我知道我需要所有的數據。 我使用lazyload的一些其他屬性,但在這種情況下,它將是最好的一次獲取所有數據(然後緩存它) – karlis 2009-01-23 11:40:24