【问题标题】:Do we need to Re-create Model Classes while using the Repository Pattern我们是否需要在使用存储库模式时重新创建模型类
【发布时间】:2009-09-13 11:33:01
【问题描述】:

我将 LinqtoSQL 用于 WPF M-V-VM 应用程序,因为我将来可能想从 LinqtoSql 更改为其他东西,例如实体框架或 Subsonic 等,因此我发现存储库模式很有帮助,

我的问题是如何创建模型类,假设我在数据库中有一个表,我知道我不能使用 LINQtoSQL 生成的类作为模型类,如果我这样做,那么我将变得依赖于 LinqtoSQL,这反过来会剥夺我实现存储库模式的独立性,这是否意味着我需要为所有实体类拥有自己的自定义类?

【问题讨论】:

  • 您可能需要考虑 LinqToSql 的替代品,正如您发现的那样,在这种情况下这不是一个很好的选择。
  • 出于好奇,您在这里做了什么决定?
  • @Anderson,我决定按照你的方式继续......这个没有额外的润滑层,因为它是一个小项目,可以直接管理更改而没有太多麻烦......跨度>

标签: wpf mvvm repository-pattern


【解决方案1】:

天哪,不。你为什么要这样对自己?

您已经在 ViewModel 中复制了这么多,为什么还要添加另一层复制以获取如此少的收益,尤其是考虑到 L2S 可以使用普通的 ol' clr 类型?

我认为来自 WCF 服务和 ORM 类型的服务合同都成为我的模型。仅仅因为它不驻留在 *.Model 命名空间中并不意味着什么。

如果您觉得需要这个润滑层,就让这个层成为您的 ViewModel。这就是他们的目的。

【讨论】:

  • 我想我明白你在说什么,将 ORM 和服务放入模型中,是的......我也对这里发生的重复数量感到有点震惊,肯定会看进入这个,让你知道,谢谢安迪....
  • 再次感谢您的关心再次询问:)
  • 顺便说一句,复制模型类真的很痛苦……你为我节省了很多时间,,,
【解决方案2】:

是的,这意味着您需要为所有实体类实现自己的自定义类。这很痛苦,但这就是目前的情况。

有关该主题的更多信息以及一些可能的补救措施,请参阅this SO answer

【讨论】:

  • “不要让生成的 L2S 类的名称欺骗了你。”非常适合,我还看到编写自定义类会更好,因为它可以为您提供好处,例如可以管理该自定义类中的所有验证逻辑,以指出一件事。
猜你喜欢
  • 1970-01-01
  • 2011-06-11
  • 1970-01-01
  • 2020-12-28
  • 2012-05-23
  • 2022-10-13
  • 1970-01-01
  • 2023-03-22
  • 1970-01-01
相关资源
最近更新 更多