我目前正在测试 Db4o 以获得一个 asp.net MVC 2 应用程序的想法,但有一些事情我不太确定最好的方法。
我希望我的应用程序使用可猜测的路由而不是 Id 来引用我的实体,但我也认为我需要某种 Id 来更新场景。
所以例如我想要
/country/usa 而不是 /country/1
我可能想更改键名(可能不是在一个国家/地区,而是在其他实体上)所以我认为我需要一个 Id 作为引用来在更新它的字段之前检索对象。从其他评论看来,UUID 的使用时间似乎有点长,并且更愿意使用我自己的 id 来彻底分离关注点。
看看 KandaAlpha 项目,我不太热衷于设计的某些方面,而是更喜欢 S#arp 架构,他们使用 [domainsignature] 和 EntityWithTypedId、IEntityDuplicateChecker、IHasAssignedId、BaseObject 和 IValidatable 之类的东西他们的实体来控制插入/更新行为,这看起来更清晰、更可扩展,涵盖了验证,并且很好地封装在核心和基础存储库类中。
那么将 S#arp 架构移植到 Db4o 是否有意义,或者我是否仍在考虑 oodb 世界中的 rdbms?
还有在 Db4o 中管理索引(包括上述唯一索引)的最佳实践吗?例如,它们应该基于模型元数据并在引导程序中使用 DI 加载,还是应该更像 Automapper.CreateMap 那样加载?
我知道这是一个漫无边际的问题,但非常感谢任何想法、想法或建议的阅读材料。
谢谢麦克