我的 ORM 正在生成反映数据库表结构的对象。这个对象是可扩展的,所以我可以添加新的属性和方法。这个对象不包含任何持久性逻辑,所以我猜它们是持久性无知的。
我应该将此对象用作我的域对象还是应该为主域模型创建新对象?
作为创建新对象的专家,我认为当数据库表发生更改时,它不会破坏应用程序。
作为创建新对象的一个缺点,我会考虑应用程序中的额外映射和更多复杂性。
我的 ORM 正在生成反映数据库表结构的对象。这个对象是可扩展的,所以我可以添加新的属性和方法。这个对象不包含任何持久性逻辑,所以我猜它们是持久性无知的。
我应该将此对象用作我的域对象还是应该为主域模型创建新对象?
作为创建新对象的专家,我认为当数据库表发生更改时,它不会破坏应用程序。
作为创建新对象的一个缺点,我会考虑应用程序中的额外映射和更多复杂性。
而不是使用您的 ORM 以与数据库如何查看数据相关的形式从数据库中提取数据,而是创建您的域对象以实际匹配您的域,然后使用您的 ORM 以任何方式将您的域对象持久保存到数据库中数据库需要。
换句话说,你是在倒退。首先获得正确的域模型,然后让您的 ORM 担心如何将它们持久化到数据库中。
我的回答是,这取决于。如果你有很多与许多实体相关的复杂逻辑,你应该创建另一层域,但是对于没有逻辑并且只是作为数据库端口的对象,不要费心创建一个单独的对象,因为它没有意义。
综上所述,如果一个db的变化会导致域的变化,如果不会,就不要分开,分开。