使用Moq和EntityFramework graphdiff

时间:2015-05-15 11:03:35

标签: entity-framework moq graphdiff

我刚刚在现有的Entity Framework解决方案中添加了GraphDiff,该解决方案正在利用Moq框架进行测试。 我在插入和更新方法中使用Moq的所有测试现在都失败了,因为方法 _context.UpdateGraph 会抛出异常:System.NullReferenceException:对象引用未设置为对象的实例。 GitHub上的GraphDiff https://github.com/refactorthis/GraphDiff

UpdateGraph扩展方法: https://github.com/refactorthis/GraphDiff/blob/develop/GraphDiff/GraphDiff/DbContextExtensions.cs

你应该如何使用GraphDiff连接Moq?

1 个答案:

答案 0 :(得分:1)

我们也有这个问题。这就是我们解决它的方式。

所以这是在IContext界面中:

public class PanelEx : Panel {
  protected override Point ScrollToControl(Control activeControl) {
    return this.DisplayRectangle.Location;
  }
}

这是在基础环境中:

T UpdateGraph<T>(T entity, Expression<Func<IUpdateConfiguration<T>, object>> mapping = null) where T : class, new();

DbEntityEntry<TEntity> Entry<TEntity>(TEntity entity) where TEntity : class;
        DbEntityEntry Entry(object entity);

        DbContextConfiguration Configuration { get; }

 public virtual T UpdateGraph<T>(T entity, Expression<Func<IUpdateConfiguration<T>, object>> mapping = null) where T : class, new()
        {
            return null;
        }

这是在实际的具体背景下:

private ObjectContext ObjectContext
        {
            get { return (this as IObjectContextAdapter).ObjectContext; }
        }

public override T UpdateGraph<T>(T entity, Expression<Func<IUpdateConfiguration<T>, object>> mapping = null) // where T : class, new()
        {
            return DbContextExtensions.UpdateGraph<T>(this, entity, mapping);
        }