c# - Entity Framework Core 不保存相关数据

标签 c# .net entity-framework

继续昨天的 post

两个实体

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. 接下来,我添加一个 Realtor 并推送在 ID 上找到的 Subdiv 属性,即新创建的 TOSTER TM Realtor.Subdiv 是 Subdiv 类型的对象。好的。 enter image description here

  3. 然后我尝试从基础中选择新添加的房地产经纪人。 Realtor.Subdiv = null我的天啊!! enter image description here

  4. 我们得到了 Subdiv 对象,这在上面的 Realtor 中是没有的,并且看到他的 List<Realtor> = null

enter image description here

请帮助解决这个问题。

最佳答案

试试这个:

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

现在您可以访问 Subdiv 属性

对于更多相关日期,您可以多次调用 Include 方法:

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);

关于c# - Entity Framework Core 不保存相关数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40381914/

相关文章:

c# - 无法在另一个 SqlConnection 的 'using' 子句中打开 SqlConnection?

c# - 每行带有按钮的 WPF ListView

c# - 如何给字典起名字?

c# - 如何配置 mod_mono 以运行 .NET 4.5

c# - 如何在 asp.net c# mvc 中为现有软件创建 SaaS 应用程序

c# - Roslyn CTP 是否仍可用于 Visual Studio 2010 SP1

c# - 我可以使用 null 条件运算符而不是经典的事件引发模式吗?

c# - EF - 无法将运算符 '==' 应用于类型为 'TId' 和 'TId' 的操作数

c# - 使用序列化在 Entity Framework 中的两个 ObjectContext 之间复制实体

c# - Entity Framework - 使用添加/修改的子实体和孙实体更新实体