Сохранение корневого объекта в Entity Framework 6 (но не весь контекст)
Я пытаюсь сохранить корневой объект в Entity Framework, но не все объекты контекста. Кажется, это основная особенность структуры сущностей, и я действительно не понимаю, как это сделать.
Я использую следующий общий DbContext
class GenericContext<T> : DbContext
{
DbSet<T> Objs;
SaveChanges( ICollection<T> validatedObjs )
{
...
}
}
Мой вопрос:как я могу реализовать метод SaveChanges, чтобы сохранить все validatedObjs, даже те, которые связаны с 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.