2013-02-12 2 views
0

Когда вызов метода SaveChanges() контекста, отношения на другой стороне изменения автоматически обновляются.Обновление отношений «один ко многим» без SaveChanges

Например, если у меня был учитель MRX с виртуальным ICollection студентов включая littleJohnny

mrX.Students.Remove(littleJohnny); 
Debug.Assert(littleJohnny.Teacher!=null); //assert should pass 
context.SaveChanges(); 
Debug.Assert(littleJohnny.Teacher==null); //assert should pass 

mrX.Students.Add(littleJohnny); 
context.SaveChanges();//revert to previous state 

littleJohnny.Teacher=null; 
Debug.Assert(mrX.Students.Contains(littleJohnny)); //assert should pass 
context.SaveChanges(); 
Debug.Assert(!mrX.Students.Contains(littleJohnny)); //assert should pass 
  1. Есть ли способ, чтобы обновить такие отношения без сохранения данных в базе данных в Entity Framework 4.3 и 5,0?

  2. В другом случае, если у меня есть ViewModel, который сопоставляется с указанными выше объектами, есть ли простой способ скопировать это поведение EF ->, то есть отслеживать отношения и обновлять отношения при вызове метода?

+0

Пара вопросов: 1. Вы используете EF Code-первых? 2. Когда вы ViewModel, вы говорите WPF или Silverlight? –

+0

Извините, должен был указать, Да, я сначала использую код. Что касается модели представления, то я преимущественно использую mvvm и WPF, но на самом деле я рассматриваю модель. Я имею в виду что-то отображаемое между объектами, например, использование Automapper на POCO – Brent

ответ

1

попробуйте позвонить context.ChangeTracker.DetectChanges()

, если это не сработает, то ваши родственные лица не были инициализированы правильно