我正在使用我的Map
方法从上下文类DTO
创建Company
对象,并且映射如下所示:
private CompDTO Map(Company company)
{
return new CompDTO()
{
Id = company.Id,
Title = company.Title,
ParentCompanyId = company.ParentCompanyId,
};
}
CompDTO
看起来像这样:
public class CompDTO
{
public long Id { get; set; }
public string Title { get; set; }
public long? ParentCompanyId { get; set; }
public bool HasChildrens { get; set; }
}
这是我调用Map方法的方式:
private IEnumerable<CompDTO> Map(IEnumerable<Company> companies)
{
var result = companies.Select(c => Map(c));
return result.Select(c => { c.HasChildrens = companies.Any(cc => cc.ParentCompanyId == c.Id)});
}
在主映射之后,我试图为每个HasChildrens
项目填充return result.Select
中的compDTO
属性。
但是我想还有更深层次的问题,因为我只是这样添加测试:
return result.Select(c => { c.HasChildrens = true; });
它说:不能从用法中推断出方法的类型参数。
任何帮助都会很棒
IEnumerable Select应该从输入中创建一个新序列。如果您只是想使用Select作为一个foreach来更改属性,则需要返回传递给lambda的对象