2011-07-05 160 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

相關問題