1
我有以下DTO:填写DTO模式与实体值
public class EbookDTO {
public Int32 EbookId { get; set; }
public Int32 CoverId { get; set; }
public Int32 DocumentId { get; set; }
}
而且我有以下实体框架的实体:
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
的文件ID的那些; - 在
context.Files
中查找带有(2)中所带参数的那些; - 每个
EbookDTO
DocumentId
将是名为“文档”的文件,并且EbookDTO
CoverId
将是名称为Cover的文件。
我尝试了一些疑问,例如:
context
.EbooksFiles
.Where(x => ebooks.Select(y => y.Id).Contains(x.EbookId))
但我不知道如何测试的文件名,获得其ID,并添加定义DocumentId
每个EbookDTO
的CoverId
。