我们的客户希望在下一个项目中同时支持 SQL Server 和 Oracle。我们的经验来自.NET/SQL Server 平台。我们将雇用一名 Oracle 开发人员,但我们关心的是 DataAccess 代码。 NHibernate 会让 DB Engine 对我们透明吗?我不这么认为,但我想听听遇到过类似情况的开发人员的意见。
我知道这个问题有点模糊,因为我没有Oracle经验,所以我不知道我们会发现什么问题。
通过遵循一些基本实践,您可以轻松地使用 NHibernate 使您的应用程序与数据库无关:
- 首先设计您的对象模型。
- 不要使用任何特定于数据库的代码。您需要具有良好 C# 经验的人,而不是 Oracle 开发人员。不要依赖触发器、存储过程等东西。
- 让NHibernate至少在最初生成数据库模式(您可以稍后调整索引之类的东西)它将为每个数据库选择最佳的可用数据类型。
- 使用与数据库无关的 POID 生成器(
hilo
or guid
)而不是序列或身份。
- 尽量避免使用 SQL。 HQL 和 Linq 在 99% 的情况下都可以正常工作。
- 避免所有目标数据库不支持的 NH 功能(例如,Future、MultiCriteria 等)
NHibernate 有一个很棒的社区。您可以随时在以下位置提问http://groups.google.com/group/nhusers除了在这里发帖之外。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)