c# - 什么是数据表或自定义对象,效率更高?

标签 c# wpf mvvm dataset

通常,当使用表单应用程序处理来自数据库的数据时,我将其保存在数据集或数据表中,并根据需要提取数据。现在,我正在使用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/

相关文章:

c# - DataGrid mvvm/wpf 内的 ComboBox 上的 SelectionChanged 的​​ EventToCommand

c# - 失控的 switch 语句的最佳替代方法是什么?

c# - 无法让 WpfMediaKit 工作

WPF Scrollviewer 滚动到鼠标位置

unit-testing - 使代码可单元测试的最佳方法

c# - 如何将 2 个密码框作为命令参数传递给命令?

c# - 如何使用 3 includes 优化 Entity Framework 查询

c# - 即使生成的 SQL 很快, Entity Framework 也会随着添加的额外连接而逐渐变慢

c# - 从 Int 表达式创建 bool Linq to SQL 表达式

c# - 混合 WPF 和 winforms 项目 DPI 意识