gpt4 book ai didi

asp.net-mvc - 延迟加载和 RequiredAttribute 问题 : The XXX field is required

转载 作者:行者123 更新时间:2023-12-04 18:29:40 25 4
gpt4 key购买 nike

我有一个 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 });
}

每当我调用此操作时,我都会收到以下验证错误:

The Author field is required.

Comment 对象来自数据库,因此它确实 有作者。 “有趣”的是,每当我使用 Visual Studio 调试器检查 Author 是否确实丢失时,验证错误都不会触发。

我在这里假设问题是 Author 属性的延迟加载永远不会发生,我是否正确?如果是这样,仅针对这种情况,我如何才能强制填写所有导航属性? (否则我想继续使用延迟加载)

解决这个问题的最佳方法是什么?我走在正确的轨道上吗?为什么在 EF 明确要求它保存实体时不进行延迟加载?

我们将不胜感激。

最佳答案

你可以使用 Include急切地获取数据上下文的关系。

context.Comments.Include("Author").Single<Comment>(c => c.ID == id);

关于asp.net-mvc - 延迟加载和 RequiredAttribute 问题 : The XXX field is required,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5656172/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com