vendredi 30 juin 2023

I am doing an inner join and a GroupJoin and I have the following error

I have the following code in C# doing some inner join

public class Complaints : BaseDomainModel 
    {
        public string CaseNumber { get; set; }
        public int ClassificationId { get; set; }      
        public int PriorityId { get; set; }
        public bool Anonymous { get; set; }
        public int StatusId { get; set; }
        public int ReferralChannelId { get; set; }
        public DateTime EntryDate { get; set; }
        public DateTime EntryDateManagement { get; set; }
        public virtual Parameter Classification { get; set; }
        public virtual Parameter Priority { get; set; }
        public virtual Parameter Status { get; set; }
        public virtual Parameter ReferralChannel { get; set; }
    }

public  class ComplaintsRequeriments : BaseDomainModel
    {
        public int ComplaintsId { get; set; }
        public string Requeriments { get; set; }
        public int TypeId { get; set; }
        public virtual Parameter Type { get; set; }
        public virtual Complaints Complaints { get; set; }
    }
  public class ComplaintPerson : BaseDomainModel
    {
        public int PeopleId { get; set; }
        public int ComplaintsId { get; set; }
        public int TypePersonId { get; set; }
        public People People { get; set; }
        public Complaints Complaints { get; set; }
        public Parameter TypePerson { get; set; }
    }
 public class Parameter : BaseDomainModel
    {
        public int ParameterTypeId { get; set; }
        public string Value{ get; set; }
        public virtual ParameterType ParameterType { get; set; }
        
    }

 public class People : BaseDomainModel
    {     
        public int DocumentTypeId { get; set; }
        public string Number { get; set; }
        public string Name { get; set; }
        public string Surnames { get; set; }
        public virtual Parameter DocumentType { get; set; }    

    }
  public class User : BaseDomainModel
    {
        public int PermissionId { get; set; }
        public string Email { get; set; }
        public string Name { get; set; }
        public string Surnames { get; set; }
        public int? ImageUploadId { get; set; }
        public virtual Permission Permission { get; set; }
        public virtual FileUpload? ImageUpload { get; set; }

        public virtual ICollection<RequestAssignment> Assignments{ get; set;}
    }

GetAllById

 public IQueryable<TEntity> GetAllById(Expression<Func<TEntity, bool>> predicate, 
bool withTracking = false, bool withSplitedQuery = false)
        {
            var query = _dbset.AsQueryable().Where(predicate);

            if (withSplitedQuery) query = query.AsSplitQuery();
            else query = query.AsSingleQuery();

            if (withTracking) return query.AsTracking();

            return query.AsNoTracking();
        }

Join

var r = _unitofwork.Complaints.GetAllById(a => !a.DeletedRecord, true, true).ToList()
                 .Join(_unitofwork.IComplaintsRequeriments.GetAllById(a => !a.DeletedRecord, true, true).ToList()
                 , Complaints => Complaints.Id, Requeriments => Requeriments.ComplaintsId
                 , (Complaints, Requeriments) => new
                 {
                     Complaints,
                     Requeriments
                 })
                 .Join(_unitofwork.ParameterRepositories.GetAllById(a => !a.DeletedRecord, true, true).ToList()
                 , Requeriments => Requeriments.Requeriments.TypeId, ParameterRepositories => ParameterRepositories.Id
                 , (Requeriments, ParameterRepositories) => new
                 {
                     Requeriments,
                     ParameterRepositories
                 })
                 .GroupJoin(_unitofwork.ComplaintPerson.GetAllById(a => !a.DeletedRecord, true, true).ToList()
                 , Person => Person.Requeriments.Complaints.Id, ComplaintPerson => ComplaintPerson.ComplaintsId
                 , (Person, ComplaintPerson) => new
                 {
                     Person,
                     ComplaintPerson
                 })
                 .Join(_unitofwork.IPeople.GetAllById(a => !a.DeletedRecord, true, true).ToList(),
                  personUser => personUser.ComplaintPerson.Select(a => a.PeopleId), user => user.Id
                 ,(personUser, user) => new 
                 {
                     personUser,
                     user
                 });

Severity Code Description Project File Line Suppression State

Error CS0411 The type arguments for method 'Enumerable.Join<TOuter, TInner, TKey, TResult>(IEnumerable<TOuter>, IEnumerable<TInner>, Func<TOuter, TKey>, Func<TInner, TKey>, Func<TOuter, TInner, TResult>)' cannot be inferred from the usage. Try specifying the type arguments explicitly. Application C:\Users\asbel\Desktop\RepositoryDGII\Backend\DDD.Application\Features\Complaints\AdminInputFlag\Querys\AdminInputFlag\AdminInputFlagHandler.cs 59 Active

 

I hope to bring the different join and group join of the different models

Aucun commentaire:

Enregistrer un commentaire