就我自己知道的,automapper是常用的,还是比较合适好用。不过我一般采用MVVM模式,其实就是简单的model名称不同而已,而这些转换器升级,扩展的很多,功能丰富,但是我用不到啊,又不能按照自己需要的扩展,
我们常有的方法,查询数据库后转换成model.此程序采用emit实现转换。
例如:
public class Person
{
public int Id { get; set; }
[ColumnType(typeof(double))]
public decimal? DTO { get; set; }
[DataField("user")]
public string Name { get; set; }
}
Person person = new Person();
DataTable dt = new DataTable();
dt.Columns.Add("Id", typeof(int));
dt.Columns.Add("DTO", typeof(string));
dt.Rows.Add(1, "3e-6");
dt.Rows.Add(2, "5000");
List<Person> lst= dt.ToEntityList<Person>();//转model
DataTable dd= lst.FromEntityToTable();//转换回datatable
IDataReader idr = null;
List<Person> lstm= idr.ToEntityList<Person>();//转model
DataTable dds= lstm.FromEntityToTableAttribute<Person>();//有属性的转换
项目地址:实体对象转换;转换同名的属性
nuget:
EntityMappingDB