У меня есть класс User, который имеет много сообщений, а класс сообщений имеет свойство user.Моя проблема в том, что в хранилище, чтобы получить пользователя, я звоню в хранилище сообщений, чтобы получить все сообщения пользователя.В репозитории, чтобы получить сообщение, я также звоню в репозиторий пользователя, чтобы получить постер.Как мне обработать что-то подобное, используя POCO и шаблон хранилища?
Вот модель.
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.Я просто удалил вопрос, нацеленный не на ту проблему, поэтому я сделал новый вопрос, правильно определяющий проблему.