#visual-studio-2010 #entity-framework-4 #firebird #firebird2.5
#visual-studio-2010 #entity-framework-4 #firebird #firebird2.5
Вопрос:
Я скачал Firebird 2.5 и где-то прочитал, что он поддерживает Entity Framework. Когда я добавляю ADO.NET Модель данных объекта в моем проекте и попытайтесь обновить базу данных с помощью модели, Visual Studio 2010 отображает только источники данных SQL Server в списке. Нет ODBC или Firebird.Указан поставщик сети.
В таком случае, как заставить Firebird выступать в качестве источника данных для модели сущности в моем проекте?
Ответ №1:
Установите Firebird-2.5.0.26074_1_Win32.
Установите NETProvider-2.6.0.
И интегрировать его в VS2010:
Извлечение FirebirdDDEXProvider-2.0.5.zip и следуйте инструкциям в ReadMe.txt внутри.
(комбинация этих версий работает — я не пробовал более новые версии)
Обновление: немного подробнее о том, как я выполнил некоторые шаги в ReadMe.txt
На шаге 1: зарегистрируйте эти 2 файла в GAC
cd "C:Program FilesFirebirdDDEXProvider-2.0.5"
"C:Program FilesMicrosoft SDKsWindowsv7.0AbinNETFX 4.0 Toolsgacutil.exe" /i FirebirdSql.VisualStudio.DataTools.dll
cd "C:Program FilesFirebirdClient"
"C:Program FilesMicrosoft SDKsWindowsv7.0AbinNETFX 4.0 Toolsgacutil.exe" /i FirebirdSql.Data.FirebirdClient.dll
На шаге 2: вот часть, которую я добавил в machine.config
<configuration>
<configSections>
...
<section name="firebirdsql.data.firebirdclient"
type="System.Data.Common.DbProviderConfigurationHandler, System.Data,
Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
и
<system.data>
<DbProviderFactories>
<add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient"
description=".Net Framework Data Provider for Firebird"
type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory,
FirebirdSql.Data.FirebirdClient, Version=2.6.0.0, Culture=neutral,
PublicKeyToken=3750abcc3150b00c" />
Замените «3750abcc3150b00c» в приведенном выше ключе ключом из этого:
"C:Program FilesMicrosoft SDKsWindowsv7.0AbinNETFX 4.0 Toolsgacutil.exe" /l Firebirdsql.data.firebirdclient
Комментарии:
1. Я попытался, как вы предложили, но модель сущности не распознает поставщика Firebird. Он по-прежнему недоступен в списке.
2. У меня это тоже не сработало с первой попытки. Вы должны ОЧЕНЬ внимательно следовать инструкции по прочтению. (заставляет меня задуматься, создал ли кто-нибудь скрипт для автоматизации этой процедуры)
Ответ №2:
я сделал то же самое, в проводнике сервера поставщик Firebird распознается, но я не могу создать модель данных сущности, потому что в списке поставщиков нет поставщика Firebird.
Ответ №3:
Лучше использовать пакеты MSI, которые теперь доступны. Как для поставщика, так и для DDEX. Он позаботится о регистрации DDEX и т.д. для вас. Не забудьте нажать кнопку «Дополнительно», чтобы выбрать правильные версии.