自动映射澄清以满足设计要求

时间:2015-02-21 18:20:15

标签: c# automapper

我目前正在使用数据库表,我需要将额外的属性从DAO映射到BE类。

我必须生成以下XML:

<Zoos>
  <Zoo>
    <ZooId>234OI456<ZooId>
    <Name>The Zoo</Name>
    <Address>3456 Kramer</Address
    <ZipCode></ZipCode>
    <Animals>
      <Animal Type="REPTILE">Cobra</Animal>
    <Animals>
   <Zoo>
 <Zoos>

db视图中的额外列如下:

ANI_TYPE VARCHAR(20) 
ANI_VALUE VARCHAR(20)

以前当我没有额外的列时,我为每个Zoo映射了这样的值

Mapper.CreateMap<ZooDAO, ZooBE>()
.ForMember(d => d.ZooId, e => e.ZOO_ID))
.ForMember(d => d.Name, e => e.ZOO_NAME))
.ForMember(d => d.Address, e => e.ZOO_ADDRESS))
.ForMember(d => d.ZipCode, e => e.ZOO_ZIPCODE));

我将如何映射这两列(ANI_TYPE,ANI_VALUE),以便我可以创建xml中显示的与动物相关的结构?

我有一个动物类型的c#类,其中包含以下内容

public enum AnimalType
{
  INVALID,
  REPTILE,
  MAMMAL,
  INSECT
}

动物的我的C#类看起来像这样,但我想它需要返工。随意提供建议/示例:

目前这就是我的课程:

//BE class
public class Zoo
{
  public int ZooId {get; set;}
  public string Name { get; set; }
  public string Address {get; set; }
  public string ZipCode {get; set;}
  public List<Animal> Animals {get; set;} 
}

//BE Class
public class Animal
{
  public string Type {get; set;}
  public string Text { get; set; }
}

我的DAO课程

 public class ZooDAO
 {
   public int ZOO_ID {get; set;}
   public string ZOO_NAME { get; set; }
   public string ZOO_ADDRESS {get; set; }
   public string ZOO_ZIPCODE {get; set;}
   public string ANI_TYPE {get; set;}
   public string ANI_VALUE {get; set;}  
 }

如果有人可以帮我解决上述问题,我感激不尽。

谢谢,

0 个答案:

没有答案