【发布时间】:2010-12-17 17:30:49
【问题描述】:
前几天,我有一个客户寻求构建一个简单的 WPF LOB 应用程序的建议。他们基本上想要一个用于数据库的 CRUD 应用程序,主要目的是作为 WPF 培训项目。
我还向他们展示了 Linq To SQL,他们印象深刻。
然后我解释说,直接从他们的 BLL 或 UI 代码中使用 L2S 实体可能不是一个好主意。他们应该考虑类似 Repository 模式。
此时我已经可以感觉到过度工程的警钟在他们的脑海中响起(在某种程度上也在我的脑海中)。他们真的需要一个简单的 CRUD 应用程序的所有复杂性吗? (好吧,它有效地充当了他们的 WPF 培训项目,但让我们假装它变成了一个“真正的”应用程序)。
- 您是否认为在整个应用程序中使用 L2S 实体是可以接受的?
- (根据经验)重构以后使用另一个持久性框架有多困难?
在我看来,如果 UI 层将 L2S 实体用作简单的 POCO(不涉及任何 L2S 特定方法),那么以后如果需要的话应该很容易重构。
他们确实需要一种方法来集中 L2S 查询,因此需要某种方式来管理它,即使他们确实直接使用 L2S 实体。所以在某种程度上我们已经在推动 DAL/DAO/Repository 的某些方面。
我可以看到 Repo 的主要问题是 L2S 实体和某些域模型之间的映射的痛苦。它真的值得吗?您可以在 L2S 实体上“免费”获得很多东西,我认为一旦映射到另一个模型就很难使用。
想法?
【问题讨论】:
标签: wpf linq-to-sql repository-pattern data-access-layer dao