c# - 将可为空的 int 映射到可为空的 int + automapper

我需要通过 autompper 将可空 int 映射到可空 int

这是我的类(class)事件:

public class Incident : Evenement
{
    public Incident()
        : base(-1, Global.EvenementType.Incidents, DateTime.MinValue)
    {
    }

    public Incident(int id, DateTime date, string libelle,  int formulaireId,  string societe, string userName)
        : base(id, (int)Global.EvenementType.Incidents, date, libelle, "", "", societe)
    {
        ContratId = formulaireId;
        Contrat = null;
        UserName = userName;
    }

    public Incident(int id, DateTime date, string libelle, string societe, string userName)
        : base(id, (int)Global.EvenementType.Incidents, date, libelle, "", "", societe)
    {
        ContratId = null;
        Contrat = null;
        UserName = userName;
    }


    [DataMember]
    public int? ContratId { get; set; }

    [DataMember]
    public Contrat Contrat { get; set; }

    [DataMember]
    public string UserName { get; set; }

    [DataMember]
    public bool IsGeneral

这是我类(class)的事件

 public partial class INCIDENT : EVENEMENT
    {
        public Nullable<int> FORMULAIRE_ID { get; set; }
        public virtual FORMULAIRE FORMULAIRE { get; set; }
        public string USERNAME { get; set; }
    }

当我在做映射时,contratId dans 事件中有一个 null,它会自动转换为事件类 FORMULAIRE_ID 中的 0

这是我的绑定(bind)

    Mapper.CreateMap<Incident, INCIDENT>()
            .ForMember(degivreuse => degivreuse.FORMULAIRE_ID, expression => expression.MapFrom(degivreuse => degivreuse.ContratId))
              .ForMember(degivreuse => degivreuse.FORMULAIRE, expression => expression.Ignore());

而在 PJ 中,问题是:

你知道为什么我没有获得空值吗?

问候

最佳答案

我没有发现 Automapper 处理 int? 的方式有任何问题。这是一个运行良好的快速示例:

public class Src1
{
    public string Name { get; set; }
    public int? Age { get; set; }
}

public class Dest1
{
    public string Name { get; set; }
    public Nullable<int> Age { get; set; }
}

Mapper.CreateMap<Src1, Dest1>();
Mapper.AssertConfigurationIsValid();

var s = new Src1 {Name = "aaa", Age = null};
var d = Mapper.Map<Src1, Dest1>(s);

在上面的示例中,d.Agenull。您能否提供一些示例代码来重现您遇到的问题?

https://stackoverflow.com/questions/33287550/

相关文章:

python - 标准Django/python单位转换包

python - 无法使用 OS X El Capitan pip 安装任何东西

jakarta-ee - 缺少 [类(class)] 的类(class)详细信息。为 [class]

google-chrome - 如何禁用谷歌浏览器 url 转义?

python - Pytest 在使用预定义参数 vai argparse 运行测试时抛出参数错误

java - 带有 GIT 命令的 ProcessBuilder 没有给出结果

linux-kernel - Linux 内核模块在卸载期间挂起

c# - 在 WPF 应用程序中单击按钮会重置文化

python - AssertListEqual 不改变类 __eq__ 方法

android - ViewPager setCurrentItem 不流畅