我在存储库中存储内容,需要在调用SaveChanges
之前检索该值。结果是null
但在调试器中我可以看到存储库包含本地值。
var tenant = TenantRepository.Create(model.TenantName);
// a bit further in the stacktrace I retrieve the entity
var tenant = TenantRepository.GetTenantByName(tenantName);
// now tenant is null.
TenantRepository
中的相关方法:
Create
方法:
public Tenant Create(string tenantName)
{
var tenant = new Tenant
{
Name = tenantName,
Guid = Guid.NewGuid().ToString()
};
if (Exists(tenant.Name))
{
throw new TenantAlreadyExistsException(tenant.Name);
}
_repository.Add(tenant);
return tenant;
}
GetTenantByName
方法:
public Tenant GetTenantByName(string name)
{
if (string.IsNullOrEmpty(name))
{
throw new ArgumentException("name");
}
var foundTenant = GetTenants().SingleOrDefault(tenant => name.Equals(tenant.Name));
return foundTenant;
}
private IQueryable<Tenant> GetTenants()
{
return _repository.GetAll().Include(tenant => tenant.Users);
}
正如您在此图片中所看到的,Tenant
中提供了Repository
。
为什么我无法取回它?我忽略了这个明显的错误吗?
非常感谢提前!
答案 0 :(得分:1)
可能GetAll()方法不包含AddedState中的实体。在对象上下文中新添加的租户实体的状态将是“AddedState”