延迟加载和RequiredAttribute问题:XXX字段为必填

|| 我有一个
Comment
类,其中包括一个
Author
属性:
public class Comment : IEquatable<Comment>
{
    public int ID { get; set; }

    [Required]
    public virtual User Author { get; set; }

    // More properties here
}
我希望用户能够“喜欢”评论,就像此处的StackOverflow一样。为此,我在“ѭ3”中采取了以下措施:
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调试器检查ѭ1是否确实丢失时,都不会触发验证错误。 我是否在这里假设问题是
Author
属性的延迟加载从未发生是正确的吗?如果是这样,仅在这种情况下,我如何才能强制填写所有导航属性? (否则,我想继续进行延迟加载) 解决这个问题的最新方法是什么?我是否在正确的轨道上? 为什么在EF明确要求它保存实体的情况下没有发生延迟加载? 任何帮助将不胜感激。     
已邀请:
您可以使用
Include
急切地获取数据上下文上的关系。
context.Comments.Include(\"Author\").Single<Comment>(c => c.ID == id);
    
我有类似的问题。以下应该可以工作(启用LazyLoading)。
public virtual ActionResult Like(int id)
{

   var comment = _session.Single<Comment>(c => c.ID == id);
   comment.Likes++;

   if(TryUpdateModel(comment))
   {

       _session.CommitChanges();

   }
   return Json(new { comment.Likes });
}
    

要回复问题请先登录注册