目前,我有一个数据表并使用ForEach循环它并构建对象以添加到我的列表List<MyClass>
。
不幸的是,这种方法需要为每种类型使用单独的方法来处理列映射。数据表中的列与对象属性的名称不同。
如何创建通用方法来实现列映射?理想情况下类似于通用BuildObjects<T>
方法,可以处理BuildObjects<Car>
,BuildObjects<Dog>
和BuildObjects<Tree>
并将行列映射到对象属性。
答案 0 :(得分:1)
好吧,BuildObjects
不是通用的,因为每种类型的实现都不同。
更好的方法是使用BuildCar
,BuildTree
和BuildDog
等方法。然后,您可以遍历数据表并根据表中的任何数据调用适当的方法,告诉您输出类型是什么。
答案 1 :(得分:0)
您可以在类的对象属性上定义属性。 (这些可能包含映射到数据库列名的列)。从那里,您可以使用已定义的属性获取该类的所有属性,如:
How to get a list of properties with a given attribute?
然后您可以使用反射来创建具有所需值的对象。