【发布时间】: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