域实体 - 自动ID?

时间:2014-03-02 17:10:16

标签: c# design-patterns domain-driven-design repository-pattern

域实体始终是唯一的,因此需要一个在域中唯一的标识符。一种常见的方法是使用id修饰域实体,并将其保留为底层架构技术以设置该ID。

public MyDomainEntity {  
    int Id { get; set; }
}

通常,域实体存储在能够自动递增id的数据库中。或者我们使用ORM映射器来生成id(UUID等)

但是,我发现这种方法很成问题。谁保证例如数据库能够生成一个id?谁确保自动ID符合域的要求?

如果我想指定实体如何独特以及如何生成新的ID - 我在哪里实现它?在存储库实现?在UnitOfWorks上?

1 个答案:

答案 0 :(得分:2)

由于id是技术性的,因此域名不应该对id生成有任何要求。

如果你想控制id生成,那么我认为存储库是最好的地方。