【发布时间】:2011-06-29 10:49:15
【问题描述】:
继我的另一个 question about mocking 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 类没有构造函数,所以我不能只在我的假上下文中创建一个新的。
有没有人在您的 CodeFirst 解决方案中模拟或伪造 DbEntityEntry 取得任何成功?
或者有没有更好的方法来处理状态变化?
【问题讨论】:
标签: entity-framework ef-code-first