gpt4 book ai didi

entity-framework - 在新保存的对象上(从保存它们的上下文中获取它们时),延迟加载不起作用

转载 作者:行者123 更新时间:2023-12-04 13:14:39 27 4
gpt4 key购买 nike

我有这节课

public class Comment
{
public long Id { get; set; }
public string Body { get; set; }
public long OwnerId { get; set; }
public virtual Account Owner { get; set; }
public DateTime CreationDate { get; set; }
}

问题是虚拟属性(property)所有者是在执行以下操作时得到 null object reference exception:
comment.Owner.Name

在保存对象之后立即调用此方法(来自同一DbContext实例)
具有新的背景将起作用

有人对此一无所知吗?

最佳答案

那是因为您使用构造函数创建了Comment。这意味着未代理Comment实例,并且不能使用延迟加载。您必须在Create上使用DbSet方法来获取Comment的代理实例:

var comment = context.Comments.Create();
// fill comment
context.Comments.Add(comment);
context.SaveChanges();
string name = comment.Owner.Name; // Now it should work because comment instance is proxied

关于entity-framework - 在新保存的对象上(从保存它们的上下文中获取它们时),延迟加载不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7533883/

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