我必须建立在我建立的大多数“获取”方法遗留系统之上的复杂的域模型 - 通常只是通过传递数据库主密钥ID。很简单。我现在好奇如何处理在数据库中创建新对象的任务,并用新数据保存现有对象,并且希望确保覆盖我的所有基础。面向对象的设计:保存复杂的对象
对应的实体在数据库中数约20-25整个项目的主要领域对象。大约需要保存10个左右(其余的仅用于支持数据,不需要用户更新)。要保存的对象具有复杂的依赖关系 - 对象A具有包含对象C,D和E的对象B的列表,例如,当原始对象A为时,可能需要保存所有对象。
我想构建它,以便UI开发人员可以轻松使用它,但也强制只保存有效数据(假设对象B无法保存,除非对象C处于有效状态)。这让我害怕让他们从头开始创建一个对象并尝试保存它 - 我想遵循这样的原则,即对象应该始终处于有效状态。
另一种方法是暴露“CreateNew”并就处理它们的服务对象“保存”的方法,但参数列表这样的方法将是令人震惊的。
我想需要“CreateNew”和“保存”接受类似的命令对象,他们可以创建和传递,让他们知道需要的数据到底是什么,什么不能试图控制的。我读了command pattern,但我不需要它提供的任何主要特权。
我需要考虑哪些因素才能决定采用哪种方法?这是C#3.5,如果这个因素进入它的话。
我想过检查出来,但问题出现了与“遗留系统”部分:尽管我可以随意从数据库读取数据,但在恢复时必须通过Web服务。不幸的是,它不能直接写入数据库。 – Chris 2009-11-12 17:32:01
嗯,不幸。我没有任何经验,虽然有人在这里问了一个关于它的问题,这可能很有趣:http://stackoverflow.com/questions/1202178/incorporating-orm-into-a-semi-soa-architecture。 – 2009-11-12 17:35:37
不错的发现,一直在寻找这样的链接。谢谢! – Chris 2009-11-12 17:44:31