Следуя по пятам моего другого вопроса о издевательстве DbContext.Set У меня есть еще один вопрос насчет EF Code First.
Теперь у меня есть метод для моего обновления, который выглядит следующим образом:
if (entity == null)
throw new ArgumentNullException("entity");
Context.GetIDbSet<T>().Attach(entity);
Context.Entry(entity).State = EntityState.Modified;
Context.CommitChanges();
return entity;
Context - это интерфейс моего собственного DbContext.
Проблема, с которой я сталкиваюсь, заключается в том, как мне справиться с
Context.Entry(entity).State
.
Я прошел этот код, и он работает, когда у меня есть настоящий живой DbContext в качестве реализации моего интерфейса Context. Но когда я помещаю туда свой фальшивый контекст, я не знаю, как с этим справиться.
Для класса DbEntityEntry нет конструктора, поэтому я не могу просто создать новый в своем поддельном контексте.
Кто-нибудь имел какой-либо успех с насмешкой или подделкой DbEntityEntry в ваших решениях CodeFirst?
Или есть лучший способ обработать изменения состояния?