System.Data.OracleClient DeriveParameters问题
command = Factory.CreateCommand();
command.CommandText = cmdText;
command.Connection = connection;
if (commandType == CommandType.StoredProcedure)
{
command.CommandType = commandType;
//如果在DeriveParameters前面 将connection开启事务 DeriveParameters执行就会错误
connection.BeginTransaction();
DataBase.Create().CreateParameterBuilder().DeriveParameters(command);
}
System.Data.OracleClient会有这个问题
Oracle.DataAccess.Client不会有这个问题
终于知道原因了
微软执行DeriveParameters(command)
如果发现这个链接开始事务connection.BeginTransaction()
就必须要写command.Transaction = transaction;
还有在DeriveParameters之前必须open connection
oracle公司的类库没有这个问题
据我猜测可能oracle 有其他手段