gpt4 book ai didi

c# - Automapper null 集合变空

转载 作者:太空狗 更新时间:2023-10-30 00:39:40 24 4
gpt4 key购买 nike

如果集合为空,为什么自动映射器会创建空的集合实例?这是我的配置

public class MapperProfile : Profile
{
protected override void Configure()
{
AllowNullCollections = true;
AllowNullDestinationValues = true;
Mapper.CreateMap<User, DAL.Models.User>();
Mapper.CreateMap<DAL.Models.User, User>();
Mapper.CreateMap<Role, DAL.Models.Role>();
Mapper.CreateMap<DAL.Models.Role, Role>();
Mapper.CreateMap<Task, DAL.Models.Task>();
Mapper.CreateMap<DAL.Models.Task, Task>();
Mapper.CreateMap<TaskReport, DAL.Models.TaskReport>();
Mapper.CreateMap<DAL.Models.TaskReport, TaskReport>();
Mapper.CreateMap<Project, DAL.Models.Project>();
Mapper.CreateMap<DAL.Models.Project, Project>();
}
}

我的模型具有相同的属性:

public class User
{
public virtual List<Task> Tasks { get; set; }

public virtual List<Role> Roles { get; set; }

public virtual List<TaskReport> TaskReports { get; set; }
}

在我的 Global.asax MVC 项目中,我只是像这样添加我的配置文件:

Mapper.AddProfile(new BL.MapperProfile());

谢谢!

最佳答案

对不起,我的第一个回答不合时宜。我能够重新创建问题并找出发生了什么。

您收到此错误是因为对 Mapper.CreateMap 方法的静态调用。如果您将代码更改为仅调用非静态 CreateMap 方法,您应该没问题。

public class MapperProfile : Profile
{
protected override void Configure()
{
AllowNullCollections = true;
AllowNullDestinationValues = true;

// calling non-static CreateMap
CreateMap<User, DAL.Models.User>();
CreateMap<DAL.Models.User, User>();
CreateMap<Role, DAL.Models.Role>();
CreateMap<DAL.Models.Role, Role>();
CreateMap<Task, DAL.Models.Task>();
CreateMap<DAL.Models.Task, Task>();
CreateMap<TaskReport, DAL.Models.TaskReport>();
CreateMap<DAL.Models.TaskReport, TaskReport>();
CreateMap<Project, DAL.Models.Project>();
CreateMap<DAL.Models.Project, Project>();
}
}

关于c# - Automapper null 集合变空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33858330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com