У меня есть следующий DTO:Наполните модели DTO с сущностями значения
public class EbookDTO {
public Int32 EbookId { get; set; }
public Int32 CoverId { get; set; }
public Int32 DocumentId { get; set; }
}
И у меня есть следующие Entity Framework объекты:
public class EbookFile {
public Int32 EbookId { get; set; }
public Int32 FileId { get; set; }
public virtual Ebook Ebook { get; set; }
public virtual File File { get; set; }
}
public class File {
public Int32 Id { get; set; }
public Int32 EbookFileId { get; set; }
public String Name { get; set; }
public virtual EbookFile EbookFile { get; set; }
}
У меня есть следующий EbookDTO
список:
List<EbookDTO> ebooks = new List<EbookDTO>() {
new EbookDTO { Id = 1 },
new EbookDTO { Id = 2 }
}
Мне нужно, для каждого из этих электронных книг, получить их DocumentId и CoverId:
- В contexts.EbooksFiles получить те, что имеет
Ebook.Id
=DTO.EbookId;
- Из (1) принимают файлы Идентификаторы каждого
EbookFile
; - Найти в
context.Files
те, у которых есть идентификаторы, взятые в (2); - Каждый
EbookDTO
DocumentId
будет файлом с названием «Документ», аEbookDTO
CoverId
будет с именем Cover.
Я попробовал несколько запросов, таких как:
context
.EbooksFiles
.Where(x => ebooks.Select(y => y.Id).Contains(x.EbookId))
Но я не уверен, как проверить имя файла, получить его идентификатор и добавить определение DocumentId
и CoverId
каждого EbookDTO
.