Entity Framework 4 を使用する .NET アプリケーションを使用しています。アプリケーション バックエンドとして DB2/400 を使用しています。クエリを作成し、データベースから正常に読み取ることができます。ただし、他の操作 (挿入/更新/削除など) では、エラーが発生します。http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14222306で、DB2 クライアント ドライバーがトランザクション用に構成されていないという回答を見つけました。ただし、/sqllib/cfg フォルダーの下に db2cli.cfg ファイルが存在しません (またはコンピューターの他の場所)。また、グリーン スクリーン/Java アプリケーションからテーブルを変更できます。これが私の方法の1つです:
using (var context = new Data.SchemaEntity()) {
string sql = "select * from schemaname.tablename where FLD='V2'";
var rows = context.ExecuteStoreQuery<CUST>(sql, null);
CUST c = rows.First(); // This is giving me the correct data
if(c.EntityState == System.Data.EntityState.Detached)
context.CUSTS.Attach(c);
context.CUSTS.DeleteObject(c);
context.SaveChanges();
}
私の質問は次のとおりです。
- .NET ドライバー/プロバイダーをインストールする DB2 Express-C の別のバージョン/インストールに行く必要がありますか?
- エンティティ フレームワーク内のデータ永続化に他のアプローチを使用できますか (たとえば、jpa/hibernate では明示的なトランザクションを使用できます)。
何かアイデアがあれば (私が試してみることができるので、ここで言及してください)