【问题标题】:looking for an attribute (decoration) to mention source property name that works with auto-mapper寻找一个属性(装饰)来提及与自动映射器一起使用的源属性名称
【发布时间】:2015-07-02 15:26:27
【问题描述】:

我的 DTO 看起来像这样

  public class SomeDTO
{
    public string last_name{ get; set; }
    public string account_number { get; set; }
}

我的属性名称有下划线,因为我必须将它映射到源的属性名称。它工作正常。

但我正在寻找一些属性来帮助我正确命名我的 DTO。这样我就可以拥有类似的东西。

   public class SomeDTO
{
    [Something("last_name")]   
    public string LastName{ get; set; }
    [Something("account_number")]   
    public string AccountNumber { get; set; }
}

“列”不起作用,因为我猜它仅适用于 EF。

这是通用自动映射的代码。将数据读取器映射到 DTO。

        public T ExecuteQuerySingle<T>(List<SqlParameter> paramList, string commandString)
    {
        using (var conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ConStr"].ConnectionString))

        using (var cmd = new SqlCommand(commandString, conn))
        {

                cmd.CommandType = CommandType.StoredProcedure;
                foreach (var param in paramList)
                {
                    cmd.Parameters.Add(param);
                }
                conn.Open();
                var reader = cmd.ExecuteReader();
                if (reader.HasRows)
                {
                    T item;
                    Mapper.CreateMap<IDataReader, T>();
                    while (reader.Read())
                    {
                        item = Mapper.Map<IDataReader, T>(reader);
                        return item;
                    }
                    conn.Close();
                    return default(T);
                }
                conn.Close();
                return default(T);

        }
    }

【问题讨论】:

    标签: c# automapper


    【解决方案1】:

    您可以实现INamingConvention 将名称转换为方便,您也可以实现读取自定义属性的逻辑并手动填写字段

    【讨论】:

      猜你喜欢
      • 2020-11-11
      • 2019-10-08
      • 2021-09-15
      • 2014-12-25
      • 1970-01-01
      • 2013-02-15
      • 1970-01-01
      • 1970-01-01
      • 2015-06-09
      相关资源
      最近更新 更多