此代码:
aspnet_Users.ForEach(x =>
{
usersVm.Add(new User{
Camp = Mapper.Map<DbCamp, Camp>(GetCamp(x)),
});
});
private DbCamp GetCamp(aspnet_Users x)
{
//... some code ...
return someDbCamp;
}
应该是这样的:
aspnet_Users.ForEach(x =>
{
usersVm.Add(new User{
Camp = Mapper.Map<DbCamp, Camp>
(
Func<DbCamp>(aspnet_Users u) =>
{
//... some code ...
return someDbCamp;
}
),
});
});
这不起作用,因为Mapper.Map<Database.Camp, Camp>
期望对象typeof(DbCamp)
作为参数,而不是委托。我当然可以使用正常的功能,但从大学的角度来看,我想知道是否可以在这里使用匿名方法。
答案 0 :(得分:1)
我认为这应该处理空案例。
x => x.Users.Any() ? x.Users.First().Camp : null
在上下文中:
_dataContext.aspnet_Users.ToList().ForEach(x =>
{
usersVm.Add(new User{
Camp = Mapper.Map<Database.Camp, Camp>(
x => x.Users.Any() ? x.Users.First().Camp : null),
});
});
答案 1 :(得分:0)
这不起作用:
x => GetCamp(x)
答案 2 :(得分:0)
aspnet_Users.ForEach(x =>
{
usersVm.Add(new User{ Camp = Mapper.Map<DbCamp, Camp>({ /*... some code using x ...*/ return someDbCamp; }) });
});