在使用像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)?
答案 0 :(得分:1)
任何微观orm只是类固醇的数据映射器。它不关心你写的是什么sql,它只是试图将查询结果映射到一个对象。任何插入/更新帮助程序只是使操作更容易,而不会搞乱sql。
您的担忧与微观问题无关。您只需在LakeId上设置外键约束即可。我真的不明白你为什么同时拥有LakeId和Lake in Boat。您需要首先直接获取db模式,然后是映射查询结果所需的对象(POCO)。