我需要将EF实体映射到更适合执行业务逻辑操作的实体。为此,我使用这个表达式:
var phoneMapper = phone => new BasePhone
{
Id = phone.Id,
Number = phone.Number,
PhoneType = phoneTypeMapper(phone.PhoneType) //Pseudo-Code
}
在此示例中,手机类型类应具有自己的映射:
var phoneTypeMapper = phoneType => new BasePhoneType
{
Id = phoneType.Id,
Name = phoneType.Name
}
我想在phoneTypeMapper
的定义中使用phoneMapper
,我该怎么办?我知道这很容易用于收藏:
var phoneMapper = phone => new BasePhone
{
Id = phoneType.Id,
Name = phoneType.Name,
//Now a phone has many phone types
PhoneTypes = phone.PhoneTypes.Select(phoneTypeMapper)
}
有没有办法为非可枚举的属性执行此操作?
修改
我还应该提一下,我希望在父查询折叠之前不要折叠查询。 I.E.我想把它堵塞到一个选择中,并且每次需要提取记录状态数据时都没有它到达数据库。