是否有必要在保存之前将相关对象添加到上下文中?

时间:2015-08-27 15:12:40

标签: c# entity-framework entity-framework-6 datacontext

我从实体框架中获得了一些意想不到的行为,我想验证我的期望是否错误,或者我是否应该怀疑系统是否以错误方式配置。

有一个实体 Master ,其中一个字段是 Minion 类型的列表。在DB中,它们对应于两个通过主键相互关联的表。

在程序中,我从数据库中获取一个预先存在的主服务器,并为其添加一个新的服务器。由于我当时不在上下文之内,所以我创建了一个并添加了主人,即添加了仆从。

using (ModelContext context = new ModelContext())
{
  context.Masters.AddOrUpdate(master);
  foreach (Minion minion in master.Minions)
    context.DirectDebitStatus.AddOrUpdate(minion);
  int count = context.ChangeTracker.Entries()
    .Where(x => x.State == EntityState.Added || x.State == EntityState.Modified)
    .Count();
   context.SaveChanges();
}

我希望foreach循环不必要,因为 Minion 的添加实例应该被Entity Framework识别并相应地添加到数据库中。然而,事实并非如此,我不确定为什么。我怀疑还有其他问题,但在我开始花费大量时间追逐问题之前,我想确保它不是追逐怪物而是追逐虫子。

0 个答案:

没有答案