3

我的 ORM 正在生成反映数据库表结构的对象。这个对象是可扩展的,所以我可以添加新的属性和方法。这个对象不包含任何持久性逻辑,所以我猜它们是持久性无知的。

我应该将此对象用作我的域对象还是应该为主域模型创建新对象?

作为创建新对象的专家,我认为当数据库表发生更改时,它不会破坏应用程序。

作为创建新对象的一个​​缺点,我会考虑应用程序中的额外映射和更多复杂性。

4

2 回答 2

5

而不是使用您的 ORM 以与数据库如何查看数据相关的形式从数据库中提取数据,而是创建您的域对象以实际匹配您的域,然后使用您的 ORM 以任何方式将您的域对象持久保存到数据库中数据库需要。

换句话说,你是在倒退。首先获得正确的域模型,然后让您的 ORM 担心如何将它们持久化到数据库中。

于 2011-05-15T11:33:42.773 回答
1

我的回答是,这取决于。如果你有很多与许多实体相关的复杂逻辑,你应该创建另一层域,但是对于没有逻辑并且只是作为数据库端口的对象,不要费心创建一个单独的对象,因为它没有意义。

综上所述,如果一个db的变化会导致域的变化,如果不会,就不要分开,分开。

于 2011-05-15T11:33:32.450 回答