C# 自动映射列表<;SomeObject>;指向属性为List<;的类;SomeObject>;
好的,我有一个名为SearchResults的视图,它显示用户搜索的结果。因此,我有一个名为SearchResultsView的视图模型。SearchResultsView具有从服务获取的属性列表。所以我想使用automapper用列表填充SearchResultsView类。我可以更改服务以返回一个SearchResults类,该类也有一个带有列表的属性,但在这种情况下,我宁愿配置AutoMapper,将它从服务获得的列表作为源,并将其映射到SearchResultsView属性中C# 自动映射列表<;SomeObject>;指向属性为List<;的类;SomeObject>;,c#,asp.net-mvc,entity-framework,automapper,C#,Asp.net Mvc,Entity Framework,Automapper,好的,我有一个名为SearchResults的视图,它显示用户搜索的结果。因此,我有一个名为SearchResultsView的视图模型。SearchResultsView具有从服务获取的属性列表。所以我想使用automapper用列表填充SearchResultsView类。我可以更改服务以返回一个SearchResults类,该类也有一个带有列表的属性,但在这种情况下,我宁愿配置AutoMapper,将它从服务获得的列表作为源,并将其映射到SearchResultsView属性中 publi
public class SearchResultsView
{
public List<SearchResult> Results { get; set; }
}
public class SearchResult
{
public string Name { get; set; }
public string MacAddress { get; set; }
public string PhoneNumber { get; set; }
public List<string> URIs { get; set; }
}
Mapper.CreateMap<List<SearchResult>, SearchResultsView>();
公共类SearchResultsView
{
公共列表结果{get;set;}
}
公共类搜索结果
{
公共字符串名称{get;set;}
公共字符串MacAddress{get;set;}
公共字符串PhoneNumber{get;set;}
公共列表URI{get;set;}
}
CreateMap();
这里有一种快速的方法,可以使用。ConstructUsing
:
Mapper.CreateMap<List<SearchResult>, SearchResultsView>()
.ConstructUsing(src => new SearchResultsView { Results = src });
Mapper.CreateMap()
.ConstructUsing(src=>newSearchResultsView{Results=src});
然而,如果这就是你使用AutoMapper所做的一切,我可能会像你在评论中提到的那样直接分配
结果。更好地解释你的问题,可能是使用一些小的代码块OK对其进行了完整的编辑,希望能有所帮助。我可以很容易地进行SearchResultsView.Results=“response from server”只想在可能的情况下使用流畅的映射进行设置没有其他大多数视图都有更标准的映射只想遵守约定,并在可能的情况下对所有视图使用automapper