gpt4 book ai didi

entity-framework - Linq 投影 : Get reference of new projected entity

转载 作者:行者123 更新时间:2023-12-02 01:33:23 24 4
gpt4 key购买 nike

我需要将 EF 实体映射到相应的 DTO。在下面的示例中,我有 EF 实体 Parent 和 Child,而 Child 实体包含对 Parent 对象的引用。我还有 ParentDto 和 ChildDto (DTO),并且 ChildDto 包含对 ParentDto(不是 Parent)的引用。那么,如何在以下方法中将 ParentDto 引用分配给 ChildDto 实例:

public Task<List<ParentDto>> Method()
{
return (Context.Set<Parent>()
.Where(someCondition)
.Select(p => new ParentDto
{
// here we map all properties from Parent to ParentDto
... ,
Children = p.Children.Select(c => new ChildDto
{
// here we map all properties from Child to ChildDto
... ,
Parent = ? // reference to newly created ParentDto instance
})
}).ToListAsync();
}

最佳答案

您必须使用变量,但不能在 lambda 表达式中使用。您必须在调用 ToListAsync() 后在内存中进行映射:

public Task<List<ParentDto>> Method()
{
var parents = await (Context.Set<Parent>()
.Where(someCondition)
.ToListAsync());
return parents.Select(p =>
{
var parent = new ParentDto();
//map parent properties
parent.Children = p.Children.Select(c => new ChildrenDto
{
//map child properties
});
return parent;
}).ToList();
}

关于entity-framework - Linq 投影 : Get reference of new projected entity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32823702/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com