我有一個用戶類,有很多帖子,後期類有一個用戶屬性。我的問題是,在存儲庫中獲取用戶,我打電話到Post存儲庫以獲取所有用戶帖子。在獲取Post的存儲庫中,我還調用User存儲庫來獲取海報。我如何使用POCO和存儲庫模式處理這樣的事情?LINQ to SQL:循環查詢
這是模型。
public class User {
public IEnumerable<Post> Posts {get; set;}
/* Other properties here */
}
public class Post {
public User Poster {get; set;}
/* Other properties here */
}
庫代碼:
public IQueryable<User> GetUsers()
{
return from u in context.Users
select new User
{
/*Other properties */
Posts = postRepo.GetPostsByUserId(u.UserId)
};
}
public IQueryable<Post> GetPostsByUserId(int userId)
{
//Well, I actually call GetPosts().Where(p => p.PosterId == userId);
return from p in context.Posts
select new Post
{
/*Other properties */
Poster = userRepo.GetUsers().Where(u => u.UserId == p.PosterId).SingleOrDefault()
};
}
如果我到任何一個電話,我得到Object not instantiated
PS的錯誤。我剛剛刪除了一個針對錯誤問題的問題,所以我提出了一個新的問題來正確定義問題。
我的問題是我使用POCO。如果我在Post查詢中查詢用戶,我有5個屬性來重寫從實體映射到POCO的這種轉換。反之亦然。 – 2010-11-09 02:58:07
是的,這是L2SQL的問題,你需要從POCO的左到右克隆。實體框架FTW。 – RPM1984 2010-11-09 05:26:30
@ RPM1984你能寫一個答案,並給出一些例子或解決方案嗎?在EF中。 – 2010-11-09 11:58:26