XPO是我公司选择的对象关系映射器.有关利弊的任何想法?
我只是在寻找关于该产品的一般感觉和轶事.我们没有转向XPO.我们正在摆脱存在于应用程序中的硬编码sql字符串,并完全移动到ORM以进行所有数据访问.
其他人可能会提出技术答案(例如查询语法,使用缓存,轻松或以其他方式映射到现有数据库结构) - 但如果你有一个已建立的ORM层,那么答案可能就是
"为什么改变"?
我已经成功地使用XPO多年来已经建立了一个拥有数百名用户的商业产品.我发现它快速,灵活并且能够胜任.我认为目前没有必要改变,因为我们的数据量并不是特别大,而且主要是缓存(主要是缓存)是我们可以解决的问题.
如果我重新开始,我肯定会看看NHibernate和ADO.NET实体框架.但在实践中,一切都很好; 在技术问题出现之前,我很可能会考虑项目的商业情况.
例如,NHibernate是开源的 - 那里有一个可行的社区来支持该工具并提供(如有必要)商业支持吗?
XPO来自工具供应商,他们是否可能在产品的整个生命周期内保持业务?
ADO.NET实体框架来自微软,他因更频繁地更换数据库技术而臭名昭着,拉里用喷气燃料填充他的战斗机 - 这也会逐渐消失吗?
我发现XPO非常令人沮丧.ORM的主要思想是抽象出底层数据结构.但很快你就会注意到它们的默认字符串长度被硬编码为60个字符,因此你最终会在每个字符串周围添加这些丑陋的string.unlimited内容.抽象这么多......
在建模更复杂的对象时,您必须使用许多在对象模型中没有位置的语法,例如XPCollection.我想存储一个在类上有字符串字典的类,但遗憾的是XPO无法将其自动存储到数据库中.
因此,虽然它适用于简单类型,但是当您想要存储更复杂的东西时,它会很快崩溃.加上他们平庸的支持,真的让人感到很不满意.