在我关于模拟 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 取得任何成功?
还是有更好的方法来处理状态变化?