对于Respository接口属于Domain Layer这个我没有任何问题,因为IRepository在Domain Model的生命周期中的作用非常明显且领域模型对于持久化的行为是关心的,而Repository的实现放在Infrastructre Layer概念也很清晰,领域模型不关心持久化的实现。
问题时在这样的话,Domain Layer和Infrastructure Layer会产生循环引用。 如果实现时在.net 平台,问题就更严重,程序集的双向引用是绝对不允许,也不不可能实现的。
现在我有的方案是:
1.对于数据库中数据表映射成一个个Entity, 把Entity放在Infrastructure Layer
2.在Service中完成Domain Model与相应Entity的转换,并调用Repository对Entity进行持久化。
不知道大家有什么高招,或者自己的项目中有更好的实践。
问题时在这样的话,Domain Layer和Infrastructure Layer会产生循环引用。 如果实现时在.net 平台,问题就更严重,程序集的双向引用是绝对不允许,也不不可能实现的。
现在我有的方案是:
1.对于数据库中数据表映射成一个个Entity, 把Entity放在Infrastructure Layer
2.在Service中完成Domain Model与相应Entity的转换,并调用Repository对Entity进行持久化。
不知道大家有什么高招,或者自己的项目中有更好的实践。