Подделка или подделка DbEntityEntry или создание new DbEntityEntry

Вслед за моим другим вопросом о насмешке над DbContext.Set У меня есть еще один вопрос насчет имитации кода EF.

Теперь у меня есть метод для моего обновления, который выглядит так:

if (entity == null)
    throw new ArgumentNullException("entity");

Context.GetIDbSet().Attach(entity);
Context.Entry(entity).State = EntityState.Modified;
Context.CommitChanges();

return entity;

Контекст - это интерфейс моего собственного DbContext.

Проблема, с которой я столкнулся, заключается в том, как мне справиться

Context.Entry (entity) .State .

I ' Я прошел через этот код, и он работает, когда у меня есть настоящий живой DbContext в качестве реализации моего интерфейса Context. Но когда я помещаю туда свой поддельный контекст, я не знаю, как с этим справиться.

Конструктора для класса DbEntityEntry нет, поэтому я не могу просто создать новый в своем поддельном контексте.

Имеет Кто-нибудь добился успеха в имитации или подделке DbEntityEntry в ваших решениях CodeFirst?

Или есть лучший способ справиться с изменениями состояния?

60
задан Community 23 May 2017 в 11:54
поделиться