我正在使用Microsoft Fakes并且我已经尝试使用System.Data.Entity.Infrastructure.Fakes.ShimDbEntityEntry来填充对象DBEntityEntry但是当我尝试告诉填充程序返回DbEntry对象时我不能因为DbEntry构造函数是内部的。 我需要做什么才能返回新的DbEntry或者什么都不做。
System.Data.Entity.
Infrastructure.Fakes
.ShimDbEntityEntry<RequisitionDetail>
.AllInstances.EntityGet = m => { DbEntityEntry<RequisitionDetail> r; };
我试图返回null但是当我尝试更改其状态时,我得到一个空引用。
db.Entry(obj).State = EntityState.Modified;
如何隔离这种依赖?
答案 0 :(得分:0)
您可以通过反射访问内部构造函数。
var internalConstructor = typeof (DbEntityEntry).GetConstructors(BindingFlags.NonPublic | BindingFlags.Instance)[0];
var dbEntityEntry = (DbEntityEntry)internalConstructor.Invoke(new object[] {null});