将最小起订量与 EntityFramework graphdiff 结合使用
Using Moq with EntityFramework 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
您应该如何将 Moq 与 GraphDiff 联系起来?
我们也遇到过这个问题。我们就是这样解决的。
所以这是在 IContext 接口中:
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);
}
和
private ObjectContext ObjectContext
{
get { return (this as IObjectContextAdapter).ObjectContext; }
}
我刚刚在现有的 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
您应该如何将 Moq 与 GraphDiff 联系起来?
我们也遇到过这个问题。我们就是这样解决的。
所以这是在 IContext 接口中:
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);
}
和
private ObjectContext ObjectContext
{
get { return (this as IObjectContextAdapter).ObjectContext; }
}