0

我正在开始一个新的 MVC 项目,其中有一些特殊的规则和一点点奇怪,这让我感到困惑。具体来说,我可以访问包含我所有数据的数据库,但它必须完全通过外部 Web 服务进行处理。不要问我为什么,我不明白其中的原因。就是这样。

所以 CRUD 将通过这个 API 来处理。我正计划创建一个服务层来封装所有调用,但我无法将我的头脑围绕模型...创建基于模型的域对象(客户、订单等..)我是不是该:

  1. 手动创建它们
  2. 创建一个虚拟数据库并将 ORM 指向它
  3. 将 ORM 指向现有数据库,但忽略 ORM 的持久性来代替 API。

我觉得我已经掌握了构建它所需的所有信息,但我正在赶上 API。任何指针或建议将不胜感激。

4

2 回答 2

3

根据您正在做的事情的规模,选项 3 是危险的,因为您假设数据库模型与外部服务公开的模型相同。选项 1 和 2 彼此之间并没有太大的不同——在任何一种情况下,你都必须决定你的对象、属性和行为将是什么——归结为你是否更愿意在课堂上这样做或数据库表。

关键是确保外部服务调用隐藏在某种包装器后面。然后,我个人会在其上放置一个存储库来处理查询外部服务包装器并返回域对象。

于 2009-10-25T14:15:17.347 回答
1

通常,ORM 并不以生成干净的域模型类的能力而闻名。ORM 以创建数据层而闻名,在这种情况下您似乎不需要。

您可能会使用 T4 之类的代码生成工具,根据 Web 服务或数据库在您的域模型类中生成第一次通过代码,如果这样可以节省您的时间。否则,您可能只会手动创建域对象。即使您的代码在您的域对象上生成了第一次传递,也不太可能从数据库或 Web 服务到您的域对象的干净的 1-1 映射,因此您可能需要花费大量时间手动编辑您的代码生成的域反正上课。

于 2009-10-26T09:28:39.747 回答