複数のクライアント サイトで実行されるアプリケーションがあります。ロケーション (SQL Server、DB2、Oracle) で異なる DBMS をサポートする必要があります。アプリケーションを ODBC ベースのデータ レイヤーを使用する VC++ 6.0 から Visual Studio 2012 に変換していますが、Entity Framework (最初にデータベース) を使用したいと考えています。サンプル アプリケーションで実行時にデータベース プロバイダを変更する際に問題が発生しています。app.config の接続文字列を SQL Server から DB2 接続文字列に変更し、デフォルトの接続ファクトリを変更しました。プログラムを実行すると、データベースに接続できます (少なくともエラーは発生しません) が、linq の結果を反復処理すると例外が発生します。
タイプ「IBM.Data.DB2.DB2Connection」のオブジェクトをタイプ「System.Data.SqlClient.SqlConnection」にキャストできません
プログラムコードは次のとおりです。
private void btnList_Click(object sender, EventArgs e)
{
using (var ListBill = new LB402_TestEntities())
{
var queryGroups = from Groups in ListBill.LB_Group
select Groups.GroupName;
foreach (string name in queryGroups)
{
lbGroups.Items.Add(name);
}
}
}
app.config の変更部分は次のとおりです。
<defaultConnectionFactory type="IBM.Data.DB2.Entity.DB2ConnectionFactory, EntityFramework" />
<add name="LB402_TestEntities" connectionString="metadata=res://*/LB402.csdl|res://*/LB402.ssdl|res://*/LB402.msl;provider=IBM.Data.DB2;provider connection string="Server=db210:50000;Database=LISTBILL;uid=uuuuu;pwd=ppppp;"" providerName="System.Data.EntityClient" />
私の検索と読書から、私はこれを行うことができるはずですが、明らかに何かが欠けています.