0

通常,当使用表单应用程序处理来自数据库的数据时,我会将其保存在数据集或数据表中,并根据需要提取数据。现在,我正在使用 WPF 并尝试更符合 MVVM 模式。将这些数据表转换为对象可以更轻松地与 MVVM 一起使用。

例如,如果我有一个由这样的查询填充的表 - Select p.first_name, p.last_name, p.phone,p.email from person as p where p.first_name = 'Bob' 而不是保留数据表,我现在将其转换为人员对象。

从性能的角度来看,制作对象是否存在和失败,或者我应该坚持使用数据集和数据表?

4

2 回答 2

2

在您所描述的应用程序中,使用诸如 EF(或滚动您自己的)而不是 DataTable/DataSet 的 ORM 对性能的影响可以忽略不计,但这取决于它的实现方式。

使用 ORM 的主要优点是确保类型安全,并且在从 DataTable 对象检索数据时不必执行类型转换。在 Linq 中使用延迟加载也有好处。

我不认为到处使用实体对象一定是一个解决方案。在 ViewModel 中使用 DataTable 对象并没有什么真正的问题(尽管我不确定您将如何使用 DataTable 类的数据同步功能,但您可以完全不使用它)。

在一个新项目中,我会使用 EF,只是因为我喜欢为我处理打字,但如果你有一个使用工作正常的表的旧项目,我会坚持使用它。

于 2012-11-07T21:17:38.517 回答
1

只要确保您的对象仅包含必要的字段并包含这些对象,如果它们使解决方案更清晰。

任何最终的性能下降(最小)都将通过更清洁和更清晰的解决方案的潜在长期性能优势得到补偿。

于 2012-11-07T21:18:27.600 回答