我尝试编写跨数据库查询来比较不同环境中的查询结果,以确保两个环境的行为相同。我想在多个表上运行相同的查询来比较结果。
我试图以通用方式执行此操作,因此我可以提供我想要的表格,而不必复制比较和撤销代码,但我不知道如何访问具有自定义DataContext
类型的链接数据库。
我使用此CompareResult
类型来存储差异:
class CompareResult<T> : CompareResult
where T: class
{
public CompareResult(DataContext ctx, DataContext qaCtx, Expression<Func<T, bool>> expr) {
DevResults = ctx.GetTable<T>().Where(expr);
QAResults = qaCtx.GetTable<T>().Where(expr);
}
}
我遇到的问题是如何从Linqpad qaCtx
获取UserQuery
参数:
new CompareResult<TransferJob>(this, this.QAContext?, x => x.EffectiveDate == DateTime.Today).Dump();
当不使用自定义DataContext时,会有this
的属性指向另一个数据库,但当他们使用相同的DataContext类型时,我找不到这样的事情。在这里,您可以在我的连接中看到我在查询中连接到两个数据库:
在为LinqPad查询使用自定义DataContext类型时,如何指定我想在QA数据库上运行查询?