在这个单元测试的最后一行,我在dbContext对象上得到了一个ObjectDisposedException:
public class InvoiceRepository_Tests : AppTestBase
{
[Fact]
public async Task Test_InsertAndQuery()
{
var invoiceRepository = Resolve<IRepository<InvoiceHistory, long>>();
var invoice = new InvoiceHistory() { Reference = "1", Payments = new List<Payment> { new Payment() } };
var ihId = await invoiceRepository.InsertAndGetIdAsync(invoice);
var readInvoice = await invoiceRepository
.Query(q => q.Where(ih => ih.Id == ihId))
.Include(ih => ih.Payments)
.FirstOrDefaultAsync();
}
}
如果我将最后一行替换为:
var readInvoice = invoiceRepository.Get(ihId);
我没有得到错误信息(并且确实得到了我的父记录),但我似乎没有选择填充我的付款集合。
我不是故意在任何地方处理DbContext。事实上,据我所知,我接触过的唯一地方是为这两个表添加DbSet,并在OnModelCreating()中建立HasMany关系。
我曾尝试在测试中添加[工作单元],这是我在其他地方能找到的唯一建议,但它并没有改变行为。