I have two model classes, experience and proposals.
Here is the code of experience
public class Experience : BaseEntity
{
public virtual string Name { get; set; }
public virtual string Description { get; set; }
public virtual DateTime? CreationDate { get; set; }
public virtual string City { get; set; }
public virtual double Price { get; set; }
public virtual double? Lat { get; set; }
public virtual double? Lng { get; set; }
public virtual bool IsActive { get; set; }
public virtual bool IsFinished { get; set; }
public virtual bool IsConfirmed { get; set; }
public virtual int CountryId { get; set; }
[ForeignKey("CountryId")]
public virtual Country Country { get; set; }
public virtual string UserId { get; set; }
[ForeignKey("UserId")]
public virtual AppUser IdentityUser { get; set; }
public virtual ICollection<Proposals.Proposals> Proposals { get; set; }
public virtual ICollection<Comments.Comments> Comments { get; set; }
}
And Proposal
public class Proposals : BaseEntity
{
public virtual string Description { get; set; }
public virtual double Price { get; set; }
public virtual bool IsActive { get; set; }
public virtual bool IsConfirmed { get; set; }
[ForeignKey("ExperienceId")]
public virtual Experience Experience { get; set; }
public virtual int ExperienceId { get; set; }
public virtual string UserId { get; set; }
[ForeignKey("UserId")]
public virtual AppUser IdentityUser { get; set; }
}
Experience is related to User model
I need to get all Proposals related to experiences, that have user.
I wrote this method
public async Task<List<ProposalsDto>> GetUserProposalCustomer(string id)
{
var proposals = await _context.Experiences.Where(x => x.UserId == id).Select(x => x.Proposals)
.ProjectTo<ProposalsDto>().ToListAsync();
return proposals;
}
But it returns me this
[
{
"description": null,
"proposalPrice": 0.0,
"experiencePrice": 0.0,
"creator": null,
"proposalMessage": null,
"email": null,
"experienceId": 0,
"isActive": false,
"userId": null,
"isConfirmed": false,
"id": 0
},
{
"description": null,
"proposalPrice": 0.0,
"experiencePrice": 0.0,
"creator": null,
"proposalMessage": null,
"email": null,
"experienceId": 0,
"isActive": false,
"userId": null,
"isConfirmed": false,
"id": 0
},
I expect to have those values
Where is my trouble?
UPDATE
I tried to add .Include and
I tried to write SQL Script
Here is it
SELECT a.id
FROM dbo.Proposals AS a
INNER JOIN dbo.Experiences AS b ON a.ExperienceId=b.Id WHERE a.UserId = '3f4853a0-e310-44c2-a9e5-0c8d1dd7231e';
And I have all the values. But on API I have same stuff as before.


await _context.Experiences.Where(x => x.UserId == id).Select(x => x.Proposals)without the mapping part? Do you get the values here?idparameter and then inproposalsvariable?