如何从 DbContext 中检索未提交的实体?
考虑以下测试:
[Test]
public void AddAndRetrieveUncommittedTenant()
{
_tenantRepository.Create("testtenant");
var tenant = _tenantRepository.GetTenantByName("testtenant");
Assert.AreEqual("testtenant", tenant.Name);
}
测试失败,因为tenant
is null
。
中间有很多具体的业务代码,但归结为:
在我的Repository
类中,方法GetTenantByName
最终调用了GetAll
方法。
public IQueryable<TEntity> GetAll()
{
return DbSet.AsQueryable();
}
private IDbSet<TEntity> DbSet
{
get { return Context.Set<TEntity>(); }
}
在扩展的类上,DbContext
我有以下方法:
public new IDbSet<TEntity> Set<TEntity>() where TEntity : class
{
return base.Set<TEntity>();
}
当我设置断点时,return base.Set<TEntity>();
我可以看到该实体在存储库中可用(通过local
属性)。
如何从我的存储库中检索未提交的实体?