AutoMapper를 사용하여 모델을 뷰 모델에 매핑해야합니다.오토 맵퍼 매핑 문제
모델 :
[Table("News")]
public class News
{
[Key]
public int Id { get; set; }
public string Title { get; set; }
public DateTime DatePostedOn { get; set; }
public int Position { get; set; }
public Category Category { get; set; }
public virtual ICollection<Picture> Pictures { get; set; }
}
[Table("Pictures")]
public class Picture
{
[Key]
public int Id { get; set; }
public DateTime DateCreated { get; set; }
public string Filename { get; set; }
public int Type { get; set; }
public virtual ICollection<News> News { get; set; }
}
뷰 모델 :
public class HomeViewModels
{
public IList<HomeMainNews> MainNews { get; private set; }
}
public class HomeMainNews
{
public int Id { get; set; }
public string Title { get; set; }
public string Date { get; set; }
public string PictureURL { get; set; }
}
매핑 : 나는 단지 하나에 뷰 모델로, 그림의 집합이 뉴스를 매핑 할 수있는 방법
Mapper.CreateMap<News, HomeMainNews>();
특정 조건에 따른 그림 "Type = 2"
현재 솔루션 :
vm.MainNews = db.News
.Select(n => new HomeMainNews {
Id = n.Id,
Date = n.DatePostedOn.ToString(),
Title = n.Title,
PictureURL = n.Pictures.Where(p => p.Type == 1).Select(p => p.Filename).FirstOrDefault().ToString()
}).ToList();
Automapper 솔루션 :
vm.MainNews = db.News.Project().To<HomeMainNews>().ToList();
시도 필드 중 하나에 사용자 정의 작업이 있습니다. 'HomeViewModels view = new HomeViewModels (MainNews = news.Select (Map))'를 사용하면된다. Map은 컨트롤러에 존재하는 메쏘드이고,이 세 가지 기본 필드와 네 번째 필드 주위의 로직을 매핑하는 HomeMainNews를 리턴한다. – wal
안녕하세요, 감사합니다. 예제를 공유 할 수 있습니까? – Patrick
무엇을 시도 했습니까? 나는 단지 당신을 위해 그것을하지 않고 예제를 제공하지 않습니다. 내 첫 코멘트에서 기본 구조를 부여했습니다. – wal