【问题标题】:automapper ProjectTo need to convert a nullable<long> into a boolautomapper ProjectTo 需要将 nullable<long> 转换为 bool
【发布时间】:2019-02-08 04:02:27
【问题描述】:

我的任务是管理一个使用 automapper 构建的 Web 应用程序,以完成所有数据转换。到目前为止,我已经设法解决了大多数问题,但目前我确实有一个令人困惑的问题。

在数据库中,我有一个名为 HasDocuments 的字段,它被定义为 bigInt。

此字段保存层次结构数据,但对于此视图模型,它用作一个标志,仅用于显示值是否存在。

所以我的 viewModel 有一个属性定义为可以为空的布尔值。

public bool? HasDocuments { get; set; }

到目前为止一切顺利。

当调用数据库时

我已经检查了所有要检查的映射器 cfg,但没有一个被调用,并且遇到了一些关于 SO 的精彩文章,例如:

AutoMapper ProjectTo() configuration question

从文章中我知道 ProjectTo 命令与 MapFrom 命令不同。

我只是不明白这里发生了什么。

有人可以帮忙吗?

更新

根据要求,以下是映射配置。

  CreateMap<Parcel, BaseParcelDataContract>()
            .BeforeMap((s, d) => { System.Diagnostics.Debug.Print("");})
            .Include<Parcel, ParcelDataContract>();

Parcel 是基础 DB 对象,其 HasDocuments 属性为可为空的 long,BaseParcelDataContract 被传回控制器,其 HasDocuments 属性为可为空的 bool。

【问题讨论】:

  • 请向我们展示您的 Automapper 配置。
  • 我将编辑帖子的详细信息。
  • 使用aftermap怎么样?
  • 公平地说,BeforeMap 被复制为 AfterMap,我没有显示它的唯一原因是因为 BeforeMap 没有在我的断点上命中
  • this。您必须自己使用 MapFrom、ConvertUsing 或其他任何适合您的方式进行转换。

标签: c# automapper


【解决方案1】:

我要感谢 Luican 的回答。最后,我使用了直接左 => 右交换。但是,是的,路易肯。 Automapper 无法做到这一点。除非有人能告诉我。

授予 Luican 奖。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-24
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-26
    • 2013-05-28
    • 1970-01-01
    相关资源
    最近更新 更多