【发布时间】:2011-09-23 17:13:21
【问题描述】:
我有一个实用程序类,可以将对象转换为 DataTables,反之亦然。从数据表转换为对象列表时,我们在加载大量数据时遇到问题。我们使用自定义属性来确定和关联列信息。这是伪代码:
For each row in the table
For each property in an object
For each attribute on that property
If the attribute is our column information attribute
Grab the data from the table and insert the value into the objects property
End
End
End
End
但是,对于具有数百行的 DataTable 结果,此过程需要 分钟...这在 Web 应用程序中是不可接受的。
所以,我的问题是:是否有一些简单的方法可以来回转换 DataTable 和 .NET(自定义)数据对象,不需要大量反射(这可能是所有开销都在这案例)?
编辑:原来这是数据对象本身的另一个问题。不过,我确实通过反射调用对加载器进行了一些优化,所以谢谢大家。
【问题讨论】:
-
也许您应该发布实际代码——您的问题可能是您正在为每一行进行反射调用,而不是缓存其中的一些。有关一些想法,请参阅此问题的答案:stackoverflow.com/questions/1204748/…。
-
查看这篇关于 ValueInjector 作为数据表和对象之间的映射器的帖子:stackoverflow.com/questions/5462671/valueinjecter-and-datatable
-
我在法律上无法发布代码,但我没有缓存我的反射调用。我现在正在尝试,希望它能加快速度,达到我们可以容忍的页面加载时间。
标签: asp.net reflection datatable