Я делаю приложение Web Api + Entity Framework. Поэтому я использую AutoMapper
для сопоставления класса модели EF с классом DTO.
Это конфигурация для AutoMapper
. Важным является Apartment
. Этот метод вызывается в Global.asx
file
public class AutoMapperConfiguration
{
public static void Configure()
{
Mapper.Initialize(cfg =>
{
cfg.CreateMap<Amenities, AmenitiesDTO>();
cfg.CreateMap<Image, ImageDTO>();
cfg.CreateMap<Location, LocationDTO>();
cfg.CreateMap<Comment, CommentDTO>();
cfg.CreateMap<Reservation, ReservationDTO>();
cfg.CreateMap<Apartment, ApartmentDTO>();
});
}
}
Это проблемное свойство в ApartmentDTO
классе.
public List<DateTime> FreeDate { get; set; }
Это проблемное свойство в Apartment
классе.
[Column(TypeName = "datetime2")]
public List<DateTime> FreeDate { get => freeDate; set => freeDate = value; }
Это действие контроллера, на которое я нацеливаюсь с Почтальоном.
public IQueryable<ApartmentDTO> GetApartments()
{
var apartments = db.Apartments
.Include(a => a.Amenities)
.Include(a => a.Images)
.Include(a => a.Location)
.Include(a => a.Reservations.Select(c => c.Comment)).ProjectTo<ApartmentDTO>();
return apartments;
}
И я получаю следующую ошибку:
The specified type member 'FreeDate' is not supported in LINQ to Entities. Only initializers, entity members, and entity navigation properties are supported.
Так что мне нужно что-то сделать сDateTime
тип данных, чтобы его можно было использовать с DTO и получить рабочий ответ в Postman. Что?
Редактировать: Я предполагаю, что эта проблема как-то связана с List<DateTime>
, потому что у меня была точно такая же настройка с DateTime
в ReservationsController
, и она работала нормально.