在Entity Framework 6中保存根对象(但不是整个上下文)

时间:2015-07-07 16:31:06

标签: c# entity-framework save dbcontext persistent

我尝试在实体框架中保存根对象,但不是所有上下文对象。它似乎是实体框架的基本特征,我真的不知道该怎么做。

我使用以下通用DbContext

class GenericContext<T> : DbContext
{
  DbSet<T> Objs;

  SaveChanges( ICollection<T> validatedObjs )
  {
...
  }
}

我的问题: 如何实现SaveChanges方法以保存所有validatedObj甚至与T相关的那些?

T是数据葡萄的根对象。

与validatedObjs无关的上下文的所有对象都不得保存,即使它们处于修改状态。

如果T尚未修改但是与T相关的对​​象已被修改,我需要进行保存。

例如,如果T = Car

class Car
{
   IList<Wheel> wheels;
}

// changing the color of one wheel:
Car car1 = new Car();
Car car2 = new Car();
car1.wheels[0].color = Color.red;
car2.wheels[0].color = Color.Blue;

我们有:

Entry( car1 ).EntityState = Unchanged
Entry( car2 ).EntityState = Unchanged
Entry( car1.wheels[0] ).EntityState = Modified
Entry( car2.wheels[0] ).EntityState = Modified

如果userValidated包含car1但不包含car2,则只有car1的轮子必须保存在数据库中。

0 个答案:

没有答案