我有一个简单的 EF 查询,需要作为 OData Web API 控制器的 IQueryable 传递回客户端。
我做的查询是这样的:
var query = _context.Diary
.Where(bd => bd.EventStart < DateTime.Now)
.Project()
.To<FeedbackViewModel>();
但是,我正在尝试翻译一些不使用 OData 提供程序的旧代码,并且会跟随数据库调用(大大简化):
var mappedData = Mapper.Map<List<FeedbackViewModel>>(query);
foreach (var feedbackViewModel in mappedData)
{
if (feedbackViewModel.UserId == userId)
{
feedbackViewModel.ViewingWith = GetOtherUserDetails();
}
else
{
feedbackViewModel.ViewingWith = GetThisUsersDetails();
}
}
如何将if
语句的逻辑封装到自动映射器投影中?