将实体的Id定义为自定义类型而不是原始数据的目的是什么,正如数据库驱动程序员通常所做的那样?
答案 0 :(得分:3)
首先,域实体必须独立于存储设计(其他问题是有时候这是不可能的,但让我们假设这一点)。在现实世界(或在域名世界中),entites通常具有复杂的身份,如名字,姓氏和密码。这不是原始的。人们从出生就没有int Id,但他们有姓名和其他文件。因此,您需要将其转换为您的域模型。有时候,你没有这种复杂的身份,你可以用一些更简单的东西代替它,比如int号。但是在这两种情况下,如果您尝试使用DDD,那么您的选择不应该基于数据库(这很困难,是的)。然后,您将创建从域实体到表或其他存储的映射。