私は、ネストされた3つのエンティティフレームワークオブジェクトを持っています。また、私はそれらをマップするためにDTOと同様のオブジェクトを生成しました。3番目のレベルのプロパティにAutomapperを使用しているLINQ
だから私の質問は、companyDocumentオブジェクトが、私はすべての企業を選ぶためのクエリを実行ListCompanyDocumentsType、のリストを持っているとして、それは企業やその文書のリストをプラスして、文書タイプのリストを返し、あります各タイプがデータベース内に持つすべての文書のリスト(ループのような)。
1つのドキュメントタイプのみでcompanyDocumentを返す方法はありますか?または私はそれを間違って設計しましたか?この問題を解決するために、私はマップされたオブジェクトを使用しましたが、マップされていないDTOプロパティ内の型名を返すためにそれぞれを使用しました。それは働いていますが、それが正しいかどうかはわかりません。
また、EF .include()を使用してListCompanyDocumentTypesまで移動しようとしましたが、それぞれの型が持つすべてのドキュメントを返しています。
var config = new MapperConfiguration(cfg => { cfg.CreateMap<Company, CompanyDto>(); cfg.CreateMap<CompanyDocument,CompanyDocumentDto>();});
var mapper = config.CreateMapper();
var newDtoTest = mapper.Map<List<CompanyDto>>(companiesReturn);
var db = new entities();
foreach (var companyDto in newDtoTest)
{
foreach (var companyDtoCompanyDocument in companyDto.CompanyDocuments)
{
companyDtoCompanyDocument.dtoTypeName = (await db.ListCompanyDocumentsTypes.FirstOrDefaultAsync(p=> p.id.Equals(companyDtoCompanyDocument.typeId))).typeName;
}
}
あなたは特定のフィールドに適切な値を設定することができるようになります。この方法を使用して、ForMember()
を使用する必要があり、