Получить значение сущности по внешнему ключу - PullRequest
0 голосов
/ 07 октября 2019

У меня есть объект Property с этими свойствами

public class Property : FullAuditedEntity, IMustHaveTenant, IMustHaveAddresses<PropertyAddress>
{
    [Required]
    public virtual Status Status { get; set; }
    public virtual string PhoneNumber { get; set; }
    public virtual int TenantId { get; set; }
    public virtual int? AgentId { get; set; }
    public virtual long? AccountManagerId { get; set; }

    public virtual int PropertyTitleId { get; set; }
    public virtual int BuildingTypeId { get; set; }
    public virtual int? LandlordId { get; set; }
    public virtual int PropertyTypeId { get; set; }
    public string Attachments { get; set; }
    public virtual int? PortfolioId { get; set; }
    [ForeignKey("LandlordId")]
    public virtual Landlord Landlord { get; set; }
    [ForeignKey("AccountManagerId")]
    public virtual User User { get; set; }
    [ForeignKey("AgentId")]
    public virtual Agent Agent { get; set; }
    [ForeignKey("PropertyTitleId")]
    public virtual PropertyTitle PropertyTitle { get; set; }
    [ForeignKey("BuildingTypeId")]
    public virtual BuildingType BuildingType { get; set; }
    [ForeignKey("PropertyTypeId")]
    public virtual PropertyType PropertyType { get; set; }
    [ForeignKey("PortfolioId")]
    public virtual LandlordPropertyPortfolio PropertyPortfolio { get; set; }
    public virtual ICollection<PropertyAddress> Addresses { get; set; }
    public virtual ICollection<PropertyAsset> PropertyAssets { get; set; }
    public virtual ICollection<Site> Sites { get; set; }
    public virtual ICollection<Tenancy> Tenancies { get; set; }
    public ICollection<Utility> Utilities { get; set; }
    public ICollection<Quote> Quotes { get; set; }
}

Он имеет коллекцию Tenancies

Вот объект Tenancy

 public class Tenancy : FullAuditedEntity, IMustHaveTenant
{
    public DateTime? TenancyStartDate { get; set; }
    public DateTime? TenancyEndDate { get; set; }
    public DateTime? RenewalDate { get; set; }
    public DateTime? ContractEndDate { get; set; }
    public DateTime? ReminderNotificationDate { get; set; }
    public ContractTermTimeUnit ContractTermTimeUnit { get; set; }
    public int ContractTermLength { get; set; }
    public TenancyStatus Status { get; set; }
    public int PropertyTenantId { get; set; }
    public int PropertyId { get; set; }
    public int ContractTypeId { get; set; }
    public int TenantId { get; set; }

    [ForeignKey("ContractTypeId")]
    public ContractType ContractType { get; set; }
    [ForeignKey("PropertyId")]
    public Property Property { get; set; }
    [ForeignKey("PropertyTenantId")]
    public PropertyTenant PropertyTenant { get; set; }


}

Tenancy, подключенный к PropertyTenant через ForeignKey

Вот сущность PropertyTenant

 public class PropertyTenant: FullAuditedEntity, IMustHaveTenant
{
    public virtual string FirstName { get; set; }
    public virtual string LastName { get; set; }
    public virtual string PhoneNumber { get; set; }
    public virtual string MobileNumber { get; set; }
    public virtual string Email { get; set; }
    public virtual string LinkedinUrl { get; set; }
    public virtual string FacebookUrl { get; set; }
    public virtual string TwitterUrl { get; set; }
    public virtual bool IsPhonePreferred { get; set; }
    public virtual bool IsMobilePreferred { get; set; }
    public virtual bool IsEmailPreferred { get; set; }
    public virtual Status Status { get; set; }
    public virtual int TenantId { get; set; }
    public string IdentifierString  { get; set; }
    public virtual ICollection<Tenancies.Tenancy> Tenancies { get; set; }
    public virtual  ICollection<Quote> Quotes { get; set; }
}

Мне нужно получить все свойства, передавая метод PropertyTenantId

Вот код метода, который я пытался сделать

   public async Task<ListResultDto<DropdownOptionDto>> GetPropertySuggestions(string address, int? customerType,
            int? customerId)
        {
            IQueryable<Property> query = null;
            if (customerType == 3)
            {
                query = _propertyRepository.GetAll().WhereIf(!address.IsNullOrWhiteSpace(),
                    p => p.Addresses.First().Line1.StartsWith(address.Trim(), StringComparison.OrdinalIgnoreCase) &&
                         p.AgentId == customerId);
            }

            if (customerType == 1)
            {
                query = _propertyRepository.GetAll().WhereIf(!address.IsNullOrWhiteSpace(),
                    p => p.Addresses.First().Line1.StartsWith(address.Trim(), StringComparison.OrdinalIgnoreCase) &&
                         p.LandlordId == customerId);
            }

            if (customerType == 2)
            {

                query = _propertyRepository.GetAll().WhereIf(!address.IsNullOrWhiteSpace(),
                    p => p.Addresses.First().Line1.StartsWith(address.Trim(), StringComparison.OrdinalIgnoreCase) &&
                         p.Tenancies.Where(i => i.PropertyTenantId == customerId));

            }

I тип клиента = 2 Я не могу получить свойства из-за

PropertyAppService.cs (186, 26): [CS0019] Оператор '&&' нельзя применить к операндам типа 'bool 'и' IEnumerable '

Как мне получить все свойства через PropertyTenantId?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...