会社の ERP 用に、古い (しかし稼働中の) Firebird データベースからデータを読み込もうとしています。残念ながら、Firebird データベースに関する情報はほとんどありません。他人が作ったものであり、サービス&メンテナンス契約の条件により変更することはできません。
プロジェクトと同様に、VS2013 用の DDEX プロバイダーと EF6 プロバイダーをセットアップしました。データベースの EDM を作成しようとしています。Visual Studio でエンティティ データ モデル ウィザードを実行すると、次のエラーが発生します。
データベースへの接続中にエラーが発生しました。データベースが使用できない可能性があります。タイプ 'System.Data.Entity.Core.EntityCommandExecutionException' の例外が発生しました。エラー メッセージは次のとおりです。「コマンド定義の実行中にエラーが発生しました。詳細については、内部例外を参照してください。キャッチされた内部例外のタイプは「FirebirdSql.Data.FirebirdClient.FbException」で、次のエラー メッセージが表示されました:「動的 SQL エラー SQL エラー コード = -104 トークンが不明 - 行 6、列 8 SELECT」。キャッチされた内部例外のタイプは「FirebirdSql.Data.Common.IscException」で、次のエラー メッセージが表示されました:「動的 SQL エラー SQL エラー コード = -104 トークンが不明です - 行 6、列 8 SELECT」。
ここに私のapp.configがあります:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<configSections>
<section name="entityFramework" type="System.Data.Entity.Internal.ConfigFile.EntityFrameworkSection, EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<!-- For more information on Entity Framework configuration, visit http://go.microsoft.com/fwlink/?LinkID=237468 -->
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
</startup>
<entityFramework>
<defaultConnectionFactory type="FirebirdSql.Data.EntityFramework6.FbConnectionFactory, EntityFramework.Firebird" />
<providers>
<provider invariantName="FirebirdSql.Data.FirebirdClient" type="FirebirdSql.Data.EntityFramework6.FbProviderServices, EntityFramework.Firebird" />
<provider invariantName="System.Data.SqlClient" type="System.Data.Entity.SqlServer.SqlProviderServices, EntityFramework.SqlServer" />
</providers>
</entityFramework>
<system.data>
<DbProviderFactories>
<remove invariant="FirebirdSql.Data.FirebirdClient" />
<add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".NET Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient" />
</DbProviderFactories>
</system.data>
</configuration>
私のmachine.comfigの関連セクションは次のとおりです。
<system.data>
<DbProviderFactories>
<add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
<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=4.6.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c" />
</DbProviderFactories>
</system.data>
私は DDEXProvider-3.0.1.0 を使用しており、その DataTools dll の両方が GAC にロードされています。
私はEntityFramework.Firebird-4.6.0.0-NET45を使用しており、dll、FirebirdSql.Data.FirebirdClientはGACにあります。
NuGet のソリューションで Entity Framework 6.1.2 を使用しています。(もともと 6.0 を使用していましたが、同じエラーが発生しました。)
NuGet のソリューション 4.6.0.0 で Firebird ADO.NET Data Provider を使用しています。
NuGet のソリューションで Firebird Entity Framework Provider 4.6.0.0 を使用しています。
私のデータ接続テストは問題なく、Dialect 3 を使用してデータベースと通信しています。Dialect 1 を試してみましたが、問題は解決しません。現在、文字セットに「なし」を使用しています。
サーバー エクスプローラーでは、ドメイン、システム テーブル、テーブル、ビュー、およびストアド プロシージャのすべてのフォルダーをエラーなしで参照できます。
私の意見では、エラー コードは、Firebird データベースが「.」を好まないことを示しています。コマンドの 8 列目に。誰かがこれに対する解決策を持っていますか? 誰もこの問題に遭遇しましたか?