POCO One-To-One,微型ORM。我应该存储ref id还是只存储ref对象?

时间:2013-06-18 11:02:36

标签: repository domain-driven-design poco dapper micro-orm

在使用像Dapper这样的微型ORM(在存储库中)时,我应该将ref id存储到子Poco中还是仅存储在Model中的ref对象? 我认为如果我存储两者,更新根对象时会出现同步问题。

例如:

Class Boat
    +Id
    +LakeId
    +Lake

Class Lake
    +Id
    +Name

如果有些人改变LakeId怎么办?湖将处于无效状态! 如果有人改变Lake并生活LakeId怎么办? LakeId将处于无效状态。

我认为这两个属性的同步将是一个额外的不必要的复杂性。改变LakeId将需要从db获得新的Lake poco。

您如何在项目中处理此问题(仅使用Dapper或PetaPoco等微型ORM)?

1 个答案:

答案 0 :(得分:1)

任何微观orm只是类固醇的数据映射器。它不关心你写的是什么sql,它只是试图将查询结果映射到一个对象。任何插入/更新帮助程序只是使操作更容易,而不会搞乱sql。

您的担忧与微观问题无关。您只需在LakeId上设置外键约束即可。我真的不明白你为什么同时拥有LakeId和Lake in Boat。您需要首先直接获取db模式,然后是映射查询结果所需的对象(PO​​CO)。