繁体   English   中英

C# 自动映射器嵌套 object 条件 map

[英]C# automapper nested object conditional map

我正在使用带有最新自动映射器版本的.Net Core,并且我对嵌套对象有疑问。

我有一个视图 model 如下所示(这是我无法更改的第 3 方):

public class MyTempA
{ 
    string ShapeName;
    object ShapeDetails;
    //....some other props
}

我有下面的数据库类和视图模型

  1. Square(数据库实体)
  2. 方视图模型
  3. 金字塔(数据库实体)
  4. 金字塔视图模型
  5. 圆柱体(数据库实体)
  6. 圆柱视图模型

我为上述数据库实体提供了单独的映射器来查看模型。

我的问题:MyTempA 中的 ShapeDetails object 可以是任何基于 ShapeName 的视图模型。 我怎样才能使用 Automapper 的 map?

如果 ShapeName 是 Square,ShapeDetails 应该是 SquareViewModel(从 Square db 类映射)。

谢谢

您可以使用两个选项:

第一个是使用 AutoMapper 提供的映射 inheritance 功能,如果您的类具有基本 class。

https://docs.automapper.org/en/stable/Mapping-inheritance.html

作为第二种选择,您可以编写自定义值解析器:

https://docs.automapper.org/en/stable/Custom-value-resolvers.html

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM