我在Interbase服务器上做了很多工作。我想使用NHibernate为它开发一个数据访问层,但Interbase没有现成的dialact。
有没有人知道,是否有一个NHibernate方言用于通用的ANSI专用数据库工作,或者任何现有的方言是否适用于Interbase?
或者另一方面,创造一种新方言需要做哪些工作?
感谢您提供任何建议。
大卫
答案 0 :(得分:3)
您可以尝试GenericDialect
。
无论如何,我建议您查看https://github.com/nhibernate/nhibernate-core/tree/master/src/NHibernate/Dialect处的现有方言,并为Interbase写一个方言,然后您可以与社区分享。这并不难。
答案 1 :(得分:0)
Firebird方言可能相当接近。从那开始,并在必要时进行调整。
免责声明:我没试过这个。对于IB,ADO.NET提供商会有所不同,因此理论和实践可能会有所不同。但是IB和Firebird的SQL语法与列表中的其他选项没有什么不同。
答案 2 :(得分:0)
我对这些答案都不满意所以当我在项目之间有一个闲暇的工作日时,我自己给了它。
Firebird方言完全正常。有一些东西(如修剪)不能很好地进入interbase sql。这些可以简单地避免,因为使用ORM的好处大大超过了替代品。
我们在公司使用IBProvider驱动程序。不是免费的,但闪电般快,不会像以前使用的Data Direct驱动程序那样崩溃我们的应用程序。 IBProvider使用oledb驱动程序,NHibernate默认支持该驱动程序。