无法从 'System.Guid?' 转换为 Abp.Application.Services.Dto.EntityDto<System.Guid>

Cannot convert from 'System.Guid?' to Abp.Application.Services.Dto.EntityDto<System.Guid>

我试图将 Guid 传递到从数据库返回结果的方法中,但我收到以下错误消息

Cannot convert from 'System.Guid?' to Abp.Application.Services.Dto.EntityDto

这是两种方法 方法一:

        public async Task<ListResultDto<DepartmentDto>> GetAllDepartmentAndReferrerByReferralOrganizationId(EntityDto<Guid> input)
    {
        var filteredDepartment = _departmentRepository
            .GetAll()
            .Include(r => r.Referrer)
            .Where(a => a.ReferralOrganizationId == input.Id);

        var result = await filteredDepartment
        .ToListAsync();

        var lookupTableDtoList = new List<DepartmentDto>();

        //Loop through the department
        foreach (var departmentreferrer in result)
        {
            //Loop through the referrers
            foreach (var item in departmentreferrer.Referrer)
            {
                //get referrer with the id provided
                var referrerValue = GetAllReferrers(item.ReferrerId.Value);
                lookupTableDtoList.Add(new DepartmentDto
                {
                    Name = $"Department: {departmentreferrer.Name} Referrer: {item.ReferrerId}"
                });
            }
        }

        return new ListResultDto<DepartmentDto>(ObjectMapper.Map<List<DepartmentDto>>(lookupTableDtoList));
    }

方法二:

        public async Task<ListResultDto<GetReferrerForView>> GetAllReferrers(EntityDto<Guid> input)
    {
        var referrer = _referrerRepository
            .GetAll()
            .Where(r => r.Id == input.Id);

        var result = await referrer
            .ToListAsync();

        return ObjectMapper.Map<ListResultDto<GetReferrerForView>>(result);
    }

有问题的代码行是我试图将 Guid 传递到方法中的地方,例如GetAllReferrers(item.ReferrerId)。 ReferrerId 是一个可为 null 的 Guid,例如public虚拟Guid? ReferrerId { 得到;放; }

您可以像这样实例化一个 EntityDto<Guid>

var referrerValue = GetAllReferrers(new EntityDto<Guid>(item.ReferrerId.Value));