在将DataTable转换为List时,如何处理多列映射?

本文关键字:处理 何处理 映射 转换 DataTable List 在将 | 更新日期: 2023-09-27 18:15:11

目前,我有一个数据表,并使用ForEach来循环它,并构建对象添加到我的列表,List<MyClass>

不幸的是,这种方法需要为每个类型单独的方法来处理列映射。数据表中的列不能与对象属性同名。

如何创建通用方法来实现列映射?理想情况下,类似于通用的BuildObjects<T>方法,可以处理BuildObjects<Car>, BuildObjects<Dog>BuildObjects<Tree>,并将行列映射到对象属性。

在将DataTable转换为List<T>时,如何处理多列映射?

好吧,BuildObjects是通用的,因为每个类型的实现是不同的。

一个更好的方法是有BuildCar, BuildTreeBuildDog这样的方法。然后,您可以循环遍历数据表,并根据表中告诉您输出类型的数据调用适当的方法。

可以在类的对象属性上定义属性。(这些可以包含到数据库列名的列映射)。从那里,你可以获得类的所有属性与定义属性,如:

如何获得一个给定属性的属性列表?

,然后您可以使用反射来创建具有所需值的对象。