Мы используем ASP.NET Zero / BoilerPlate и столкнулись со следующей проблемой при расширении неабстрактной сущности и доступе к данным с помощью IRepository.
Я расширил сущность OrganizationUnit до OrganisationUnit, поэтому можно добавить некоторые дополнительные свойства, например:
public class OrganisationUnit : OrganizationUnit
{
public virtual bool IsCompany { get; set; }
/// <summary>
/// Initializes a new instance of the <see cref="OrganisationUnit"/> class.
/// </summary>
public OrganisationUnit()
{
}
/// <summary>
/// Initializes a new instance of the <see cref="OrganisationUnit"/> class.
/// </summary>
/// <param name="tenantId">Tenant's Id or null for host.</param>
/// <param name="displayName">Display name.</param>
/// <param name="parentId">Parent's Id or null if OU is a root.</param>
public OrganisationUnit(int? tenantId, string displayName, long? parentId = null) : base(tenantId, displayName, parentId)
{
}
}
Однако, когда мы пытаемся использовать IRepository, результатов нет, например:
public class OrganisationUnitManager : IDomainService
{
private readonly IRepository<OrganisationUnit, long> _organisationUnitRepository;
private readonly IRepository<Abp.Organizations.OrganizationUnit, long> _organizationUnitRepository;
public OrganisationUnitManager(IRepository<OrganisationUnit, long> organisationUnitRepository, IRepository<Abp.Organizations.OrganizationUnit, long> organizationUnitRepository)
{
_organisationUnitRepository = organisationUnitRepository;
_organizationUnitRepository = organizationUnitRepository;
}
public async Task<Abp.Organizations.OrganizationUnit> GetOUForEmployee(Employee.Employee employee)
{
var orgUnit = _organisationUnitRepository.FirstOrDefault(ou => ou.Id == employee.OrganizationUnitId);
var orgS = _organisationUnitRepository.GetAll(); // Returns 0 Results - with the extended columns
var orgZ = _organizationUnitRepository.GetAll(); // Returns All Records in AbpOrganizationUnits without the extended columns.
return orgUnit;
}
}
Что я пытаюсь сделать в GetOUForEmployee, так это найти Организационный блок, а не Организационный блок. Однако ничего не найдено. Использование .GetAll () подчеркивает проблему в том, что IRepository здесь не возвращает никаких результатов в расширенной таблице.