实体框架的核心不保存相关数据

德米特里加夫里连科

延续昨天的帖子

两个实体

public class Realtor
{
    public Realtor()
    {
        Guid = Guid.NewGuid();
        Registration = DateTime.Now;
    }
    public int Id { get; set; }
    public Guid Guid { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public DateTime Registration { get; set; }
    public int SubdivId { get; set; }
    public Subdiv Subdiv { get; set; }
}

public class Subdiv
{
    public Subdiv()
    {
        Created = DateTime.Now;
    }
    public int Id { get; set; }
    public string Name { get; set; }
    public DateTime Created { get; set; }
    public List<Realtor> Realtors { get; set; }
}

我花了测试

  1. 我添加了一个Subdiv(TOSTER TM)并收到了他的ID
  2. 接下来,我添加一个房地产经纪人和我推上的ID找到Subdiv属性,新创建的TOSTER TM Realtor.Subdiv是类型Subdiv的对象。好。在此处输入图片说明

  3. 然后,我尝试从基础中选择新添加的房地产经纪人。Realtor.Subdiv = null我的天啊!!在此处输入图片说明

  4. 我们得到Subdiv对象,上面的Realtor中缺少该对象,然后看到他的 List<Realtor> = null

在此处输入图片说明

请帮助解决这个问题。

格劳科·库奇亚尔

试试这个:

Relator rl = Context.Relators.Include(r => r.Subdiv).First(s => s.Id == id);

现在,您可以访问Subdiv财产

有关更多相关日期,您可以多次调用“包含方法”:

Relator rl = Context.Relators
                    .Include(r => r.Subdiv)
                    .Include(r => r.AnotherRel)
                    .First(s => s.Id == id);

对于具有多个深度级别的实体:

如果Subdir是一个集合

Relator rl = Context.Relators
                    .Include(r => r.Subdiv)
                    .ThenInclude(sub => sub.SecondLevelDepth)
                    .First(s => s.Id == id);

如果Subdir是一个实体

Relator rl = Context.Relators
                    .Include(r => r.Subdiv.Select(s => s.SecondLevelDepth)
                    .First(s => s.Id == id);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章