首页 新闻 会员 周边

automapper将datatable, dataset映射成list<T>

1
[已解决问题] 解决于 2016-11-09 15:09

DataTable dt = new DataTable();
dt.Columns.Add("Name");
dt.Columns.Add("Age");
dt.Columns.Add("Money");
for (int i = 0; i < 1000; i++)
{
var newRow = dt.NewRow();
newRow["Name"] = "name";
newRow["Age"] = 23;
newRow["Money"] = 12M;
dt.Rows.Add(newRow);
}

 

   var s= Mapper.Map<IDataReader, List<KD>>(dt.CreateDataReader()); 

 

 

 

public class KD
{
public string Name { get; set; }
public int Age { get; set; }
public decimal Money { get; set; }
}

 

 

 

请问映射为什么会失败,  怎么样映射????   居然没有园豆了 ,坑爹

等待是一生最初的苍老的主页 等待是一生最初的苍老 | 初学一级 | 园豆:3
提问于:2016-09-20 15:55
< >
分享
最佳答案
2

你如果要用automapper做这个的话。你要指定如何mapping.大约这样参考哈。自己琢磨

伪代码:

mapper.map<datarow,kd>()

.formember(kd=>kd.name,row=>row[name].tostring())

//todo

var listkd=mapper.map<list<kd>>(dt.rows)

奖励园豆:5
czd890 | 专家六级 |园豆:14412 | 2016-09-20 19:27

补充一下专业的事情交给专业的人做。个人觉得automapper不适合这个。网上找要给helper做这个舒服多了

czd890 | 园豆:14412 (专家六级) | 2016-09-20 19:28

@calvinK:对的, 这种数据结构转换有很多封装好的类库,调用下泛型function就行了

~扎克伯格 | 园豆:1923 (小虾三级) | 2016-09-21 09:35

@calvinK: 

var kdlist = AutoMapper.Mapper.DynamicMap<List<KD>>(dt.CreateDataReader());

他这个可以用DynamicMap。

~扎克伯格 | 园豆:1923 (小虾三级) | 2017-04-25 09:24
其他回答(1)
0

小伙,好消息: 你这个可以用DynamicMap

var kdlist = AutoMapper.Mapper.DynamicMap<List<KD>>(dt.CreateDataReader());

~扎克伯格 | 园豆:1923 (小虾三级) | 2017-04-25 09:19

 请问,我找不到AutoMapper.Mapper.DynamicMap,这个是要按照其他包么?

支持(0) 反对(0) Ixitly | 园豆:79 (初学一级) | 2017-06-20 10:56

@Ixitly: 引用AutoMapper dll

支持(0) 反对(0) ~扎克伯格 | 园豆:1923 (小虾三级) | 2017-06-20 12:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册