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