通常,当使用表单应用程序处理来自数据库的数据时,我将其保存在数据集或数据表中,并根据需要提取数据。现在,我正在使用WPF,并尝试使其更符合MVVM模式。将这些数据表转换为对象使使用MVVM更加容易。
例如,如果我有一个这样的查询填充的表-
选择p.first_name,p.last_name,p.phone和来自个人的电子邮件作为p,其中p.first_name ='Bob'
除了保留数据表之外,我现在将其转换为个人对象。
从性能的角度来看,是否存在制造对象的失败,还是我应该坚持使用数据集和数据表?
最佳答案
在您所描述的应用程序中,使用诸如EF之类的ORM(或滚动自己的)而不是DataTable/DataSet的性能影响可以忽略不计,但这取决于其实现方式。
使用ORM的主要优点是确保类型安全,并且从DataTable对象检索数据时不必执行类型转换。在Linq中使用延迟加载也有很多好处。
我不认为到处使用实体对象不一定是解决方案。在ViewModel中使用DataTable对象并没有什么真正的错误(尽管我不确定您将如何使用DataTable类的数据同步功能,但是您可以随意不使用它)。
在一个新项目中,我之所以会使用EF,只是因为我喜欢为我打理一下打字,但是如果您的旧项目使用的表可以正常工作,那么我会坚持使用。
关于c# - 什么是数据表或自定义对象,效率更高?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13278159/