在将DataTable转换为List时,如何处理多列映射?
本文关键字:处理 何处理 映射 转换 DataTable List 在将 | 更新日期: 2023-09-27 18:15:11
目前,我有一个数据表,并使用ForEach来循环它,并构建对象添加到我的列表,List<MyClass>
。
不幸的是,这种方法需要为每个类型单独的方法来处理列映射。数据表中的列不能与对象属性同名。
如何创建通用方法来实现列映射?理想情况下,类似于通用的BuildObjects<T>
方法,可以处理BuildObjects<Car>
, BuildObjects<Dog>
和BuildObjects<Tree>
,并将行列映射到对象属性。
好吧,BuildObjects
将不是通用的,因为每个类型的实现是不同的。
一个更好的方法是有BuildCar
, BuildTree
和BuildDog
这样的方法。然后,您可以循环遍历数据表,并根据表中告诉您输出类型的数据调用适当的方法。
可以在类的对象属性上定义属性。(这些可以包含到数据库列名的列映射)。从那里,你可以获得类的所有属性与定义属性,如:
如何获得一个给定属性的属性列表?
,然后您可以使用反射来创建具有所需值的对象。