У меня есть класс Comment
с, среди прочего, свойством Author
:
public class Comment : IEquatable<Comment>
{
public int ID { get; set; }
[Required]
public virtual User Author { get; set; }
// More properties here
}
Я хочу, чтобы пользователи могли «лайкать» комментарии, как здесь, в StackOverflow. Для этого в моем CommentController
есть следующее действие:
public virtual ActionResult Like(int id)
{
var comment = _session.Single<Comment>(c => c.ID == id);
comment.Likes++;
_session.CommitChanges();
return Json(new { comment.Likes });
}
Каждый раз, когда я вызываю это действие, я получаю следующую ошибку проверки:
Поле автора обязательно для заполнения.
Объект Comment
взят из базы данных, поэтому имеет автора. Самое смешное, что всякий раз, когда я использую отладчик Visual Studio, чтобы проверить, действительно ли отсутствует Author
, ошибка проверки не срабатывает.
Правильно ли я предположил, что проблема в том, что ленивая загрузка свойства Author
никогда не происходит? Если да, то как я могу, только для этой ситуации, принудительно заполнить все свойства навигации? (В противном случае я хочу продолжить работу с отложенной загрузкой)
Какой самый лучший способ решить эту проблему? Я даже на правильном пути?
И почему не происходит отложенная загрузка, в то время как EF явно требует, чтобы она сохраняла объект?
Любая помощь будет оценена.