我在 .NET 中有一个使用 Entity Framework 4 的应用程序。我使用 DB2/400 作为我的应用程序后端。我能够进行查询并从数据库中成功读取。但是,在任何其他操作(例如插入/更新/删除)中,我都会遇到错误。我在http://www.ibm.com/developerworks/forums/thread.jspa?messageID=14222306找到了答案,其中指出我的 DB2 客户端驱动程序未配置用于事务。但是,在 /sqllib/cfg 文件夹下不存在 db2cli.cfg 文件(或我计算机上的其他任何地方)此外,我可以从绿屏/java 应用程序修改表。这是我的一种方法:
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 中我们可以使用显式事务)。
如果您有任何想法(我可以尝试,请在此处提及)