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