gpt4 book ai didi

c# - 使用 AutoMapper 从 ICollection 映射到 ICollection 到 ICollection
转载 作者:行者123 更新时间:2023-11-30 15:04:56 26 4
gpt4 key购买 nike

配置 AutoMapper 以映射的最佳/最简单方法是什么 ICollection<DomainModel>ICollection<ViewModel>ICollection<object>

我有一个如下所示的 DomainModel:

public class DomainModel
{
ICollection<EFEntity> Data;

//other stuff
}

我想将此 DomainModel 映射到 MVC ViewModel:

public class ViewModelWithCollection
{
ICollection<object> Data;

//other stuff
}

我需要 ICollection<object>因为我使用以下 View :

@model ViewModelWithCollection
<table>
@foreach(object x in Model.Data)
{
Html.Partial("PartialView", x)
}
</table>

对于每个具体的 ViewModel,都存在一个像这样的 PartialView:

@model ViewModel
<tr> <!-- Render specific View Data --> <tr>

当我使用

AutoMapper.Map<DomainModel, ViewModelWithCollection>(source, target);

AutoMapper 只是做了这样的事情:

object target = (object)EFEntity

这当然行不通。

最佳答案

经过几个小时的搜索,我发现我想要实现的东西叫做映射继承:https://github.com/AutoMapper/AutoMapper/wiki/Mapping-inheritance

所以我的问题的解决方案是

AutoMapper.Map<DomainModel, ViewModelWithCollection>();

AutoMapper.Map<EFEntity, object>()
.Include<EFEntity, ViewModel>();

AutoMapper.Map<EFEntity, ViewModel>();

关于c# - 使用 AutoMapper 从 ICollection<EFEntity> 映射到 ICollection<ViewModel> 到 ICollection<Object>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9590980/

26 4 0