实体框架上下文添加有什么作用?

问题描述

我们正在使用 Entity Framework 5.0 并且有一个用于创建预览的用例。 所以我想看看我是否可以使用 EF 在 EF 数据模型类中构建我的预览并且持久化(没有 SaveChanges)。 (我当然可以在没有 EF 的情况下做到这一点,但我想我会做实验。)

现在我在添加到我的上下文时看到了一些奇怪的东西。

  • 在下面的代码片段中,Add 调用不会影响添加到(DbSet)的集合。之前 = 之后 = 0。

  • 当我执行 Child.Add 时,父子之间的关系被设置(parent.Child 现在包含 child)。在调用 Add 之前它没有这样做。

     private void Insert(Parent parent,Child child)
     {
         // Context.Parent does not get any items:
         int before = this.Context.Parent.Count();
         this.Context.Parent.Add(parent);
         int after = this.Context.Parent.Count();
    
         // This affects Parent.Child:
         this.Context.Child.Add(child);
     }
    

这是 Context 类的重要部分(为了清晰起见,删除了很多):

        modelBuilder.Entity<Child>(entity =>
        {
            // Removed code here...

            entity.HasOne(d => d.Parent)
                .WithMany(p => p.Child)
                .HasForeignKey(d => d.ChildId)
                .OnDelete(DeleteBehavior.ClientSetNull)
                .HasConstraintName("FK_Child_Parent");
        });

Add 到底做了什么?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)