0

我想为我的下一个项目使用实体框架,但在寻找支持实体框架的 .NET interbase 驱动程序时遇到了一些问题。我尝试从http://www.firebirdsql.org/en/net-provider/安装 Firebird 驱动程序,但在尝试通过实体数据模型向导建立连接时一直遇到模糊错误,错误如下

"Index was out of range. Must be non-negative and less than the size of the collection. Parameter name: index"

如果我不得不猜测,问题在于我正在尝试使用 firebird 驱动程序连接到 interbase 数据库。

有任何想法吗?

4

3 回答 3

0

只是一个老问题的答案,但值得一提的是我相信:

据我目前所知,不支持将 Interbase 数据库与 EF 连接(目前还没有,但我相信它会在不久的将来出现)。但是,应该可以根据 EF 的指南编写您自己的提供程序,该指南可在此处找到。我遇到了完全相同的问题,我通过编写用于 Interbase XE7 和 EF 6 (6.1.2) 的驱动程序解决了这个问题。

要开始使用,您可能需要查看 FireBird 提供程序(它是开源的)并且已经在使用 EF。如果您研究提供的代码,您可能会很好地触发为 EF 编写自己的 Interbase 提供程序。FireBirds EF .NET Provider 的链接可以在这里找到

提示: 您需要查看 Firebird 驱动程序中的 SQL 生成器和清单,并将其与 Interbase SQL 语法进行比较。映射确实不同,但只是一些小细节。当使用条件编译符号 GDS32 编译 Firebird 驱动程序时,Firebird 驱动程序将查找并加载 Interbase 提供的 gds32.dll。

于 2015-01-29T11:56:31.850 回答
0

您没有指定您的 Interbase 版本。当我说这真的很重要时,请相信我,因为 Interbase 已经存在了一段时间。

对于较新的版本,这里已经有一个问题 SO:Best way to connect to Interbase 7.1 using .NET C#

对于旧版本,您应该考虑迁移到 Firebird。Firebird .NET 提供程序将运行良好。

于 2011-07-05T21:12:01.717 回答
0

我建议您只为 Firebird 使用 Firebird .NET 驱动程序。

也许你可以看看为 Interbase 和 Firebird 制作 oledb 驱动程序的 IBProvider

于 2011-07-06T11:28:18.987 回答