嗨,因为我在我的映射配置中添加了一个
ForPath
,比如
CreateMap<ChatMessage, ChatMessageDto>()
.ForMember(c => c.AmISender, opt => opt.Ignore())
.ForMember(c => c.CareRequest, opt => opt.MapFrom(c => c.CareRequest))
.ForPath(c => c.CareRequest!.isCareConsumer, opt => opt.Ignore())
.ForPath(c => c.CareRequest!.Appointment, opt => opt.MapFrom(c => c.CareRequest!.Appointments.FirstOrDefault()));
代替
CreateMap<ChatMessage, ChatMessageDto>()
.ForMember(c => c.AmISender, opt => opt.Ignore())
.ForMember(c => c.CareRequest, opt => opt.MapFrom(c => c.CareRequest))
.ForPath(c => c.CareRequest!.isCareConsumer, opt => opt.Ignore());
CareRequest 不是 null 而是一个空对象而不是 null 我如何更改我的配置以使 carerequest 保持为 null
ChatMessage.cs
public class ChatMessage {
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
public string? Content { get; set; }
public CareRequest? CareRequest { get; set; }
[ForeignKey("CareRequest")]
public int? CareRequestId { get; set; }
public CareUser Sender { get; set; } = null!;
[ForeignKey("Sender")]
[Required]
public Guid SenderId { get; set; }
public CareUser Reciever { get; set; } = null!;
[ForeignKey("Reciever")]
[Required]
public Guid RecieverId { get; set; }
public bool Seen { get; set; } = false;
public DateTime Date { get; set; } = DateTime.Now;
}
ChatMessageDto.cs
public class ChatMessageDto {
public string? Content { get; set; }
public CareRequestDto? CareRequest { get; set; }
public int? CareRequestId { get; set; }
public Guid SenderId { get; set; }
public ChatMessageCareUserDto Sender { get; set; } = null!;
public Guid RecieverId { get; set; }
public ChatMessageCareUserDto Reciever { get; set; } = null!;
public bool Seen { get; set; }
public bool AmISender { get; set; }
public DateTime Date { get; set; }
}
CareRequest.cs
public class CareRequest {
[Key]
[DatabaseGenerated(DatabaseGeneratedOption.Identity)]
public int Id { get; set; }
[Required]
public string Task { get; set; } = "";
[Required]
public string Description { get; set; } = "";
[Required]
public Interval Interval { get; set; }
public CareConsumer CareConsumer { get; set; } = null!;
[ForeignKey("CareConsumer")]
[Required]
public Guid CareConsumerId { get; set; }
public ICollection<CareGiverCareRequest> CareGiverCareRequests { get; set; }
public ICollection<Appointment> Appointments { get; set; }
public CareRequest() {
CareGiverCareRequests = new Collection<CareGiverCareRequest>();
Appointments = new Collection<Appointment>();
}
}
CareRequestDto.cs
public class CareRequestDto {
[Required(ErrorMessage = "Wij hebben uw taak nodig")]
public string Task { get; set; } = "";
[Required(ErrorMessage = "Wij hebben uw omschrijving nodig")]
public string Description { get; set; } = "";
[Required(ErrorMessage = "Wij hebben uw interval nodig")]
public string Interval { get; set; } = "";
// public DateTime? Date { get; set; }
public Guid CareConsumerId { get; set; }
// public string? Time { get; set; } = "";
// public int? Compensation { get; set; }
public bool isCareConsumer { get; set; }
public AppointmentDto? Appointment { get; set; }
}