Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 可以自动映射项目()。到<;T>;是否按每次通话进行定制?_C#_Asp.net Mvc_Odata_Automapper_Iqueryable - Fatal编程技术网

C# 可以自动映射项目()。到<;T>;是否按每次通话进行定制?

C# 可以自动映射项目()。到<;T>;是否按每次通话进行定制?,c#,asp.net-mvc,odata,automapper,iqueryable,C#,Asp.net Mvc,Odata,Automapper,Iqueryable,我有一个简单的EF查询,它需要作为ODataWebAPI控制器的IQueryable传递回客户端 我所做的查询如下所示: var query = _context.Diary .Where(bd => bd.EventStart < DateTime.Now) .Project() .To<FeedbackViewModel>(); var query

我有一个简单的EF查询,它需要作为ODataWebAPI控制器的IQueryable传递回客户端

我所做的查询如下所示:

var query = _context.Diary
                    .Where(bd => bd.EventStart < DateTime.Now)
                    .Project()
                    .To<FeedbackViewModel>();
var query=\u context.Diary
.Where(bd=>bd.EventStart
但是,我正在尝试翻译一些未使用OData提供程序的旧代码,并将在数据库调用之后使用以下代码(大大简化):

var-mappedData=Mapper.Map(查询);
foreach(mappedData中的var反馈视图模型)
{
if(feedbackViewModel.UserId==UserId)
{
feedbackViewModel.ViewingWith=GetOtherUserDetails();
}
其他的
{
feedbackViewModel.ViewingWith=GetThisUsersDetails();
}        
}

如何将
if
语句的逻辑封装到automapper投影中?

也许可以帮助您?这看起来有些不同,即是否应该映射给定的属性。我需要一些东西,让我能够基于给定的规则,使用外部变量进行映射。完成您尝试执行的操作的唯一方法是,如果变量位于您尝试映射的类中。在这种情况下,你可以做一些像。。。“Mapper.CreateMap().ForMember(s=>s.BaseVar,t=>t.MapFrom(u=>BaseClassToListFeedBackViewModelFunc(b));(伪代码)能否提供当前的映射逻辑和日记类的成员?
var mappedData = Mapper.Map<List<FeedbackViewModel>>(query);
foreach (var feedbackViewModel in mappedData)
{
    if (feedbackViewModel.UserId == userId)
    {
        feedbackViewModel.ViewingWith = GetOtherUserDetails();
    }
    else
    {
        feedbackViewModel.ViewingWith = GetThisUsersDetails();
    }        
}