2011-07-05 248 views
0

我想为我的下一个项目使用实体框架,并且遇到一些问题需要查找支持实体框架的.NET interbase驱动程序。我试图从http://www.firebirdsql.org/en/net-provider/安装火鸟驱动程序,但不断尝试通过实体数据模型向导建立一个connnection时遇到了一个模糊的错误,错误如下Interbase .NET实体框架提供程序

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

如果我猜的话,则问题与我试图使用firebird驱动程序连接到interbase数据库的事实。

任何想法?

+1

对不起,IB没有EF提供商。目前它不存在。 –

回答

0

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

对于较新的版本,SO:Best way to connect to Interbase 7.1 using .NET C#已经存在问题。

对于旧版本,您应该考虑转移到Firebird。 Firebird .NET提供商将会很好地工作。

+0

Interbase 2007是最新版本,我正在寻找一些特别支持.NET实体框架的东西。我们已经有适用于ADO事务的ODBC驱动程序。 –

0

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

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

+0

IBProvider是否支持EF? – SamuelKDavis

0

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

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

要开始,您可能需要查看FireBird提供程序(它是开源的),并且已经与EF一起工作。如果您研究提供的代码,您可能有一个很好的触发器来为EF编写自己的Interbase提供程序。到火鸟EF .NET提供的链接,可以发现here

有一个小窍门: 你需要看看火鸟驱动程序中的SQL生成和清单,并与InterBase的SQL语法进行比较。映射真的不同,但它只是一些小的细节。当使用条件编译符号GDS32编译Firebird驱动程序时,Firebird驱动程序将查找并加载由Interbase提供的gds32.dll。

+0

我已经通过了Firebird EF6提供程序,在代码中我找到了SSDL和MSL文件。据我所知,这些文件是由概念模型/ EDMX生成的。你能解释为什么SSDL和MSL文件必须与Interbase数据库进行映射。 – Shivanka

相关问题