我使用這個代碼無法投射型「ServiceStack.OrmLite.OrmLiteDataParameter」的目的爲類型「Oracle.DataAccess.Client.OracleParameter」
using (var db = OpenDbConnection())
if (db != null)
db.Run(dbCnx =>
{
var trans = dbCnx.BeginTransaction();
dbCnx.UpdateOnly(new ProtectiveMarkingRequest
{
SecondApproverUserName = request.SecondApproverUserName,
Status = request.Status
},
onlyFields: p => new
{
p.SecondApproverUserName,
p.Status
},
@where: p => p.WorkItemCode == request.WorkItemCode);
}
trans.Commit();
});
更新到servicestack.ormlite.oracle 4.0.52後(從4.0.38),收到以下錯誤:
System.InvalidCastException是由用戶代碼 的HResult = -2147467262 消息=無法轉換類型「ServiceStack.OrmLite.OrmLiteDataParameter」的目的爲類型「的Oracle未處理。 DataAccess.Client.OracleParameter」。 源= Oracle.DataAccess 堆棧跟蹤: 在Oracle.DataAccess.Client.OracleParameterCollection.Add(對象OBJ) 在ServiceStack.OrmLite.DbDataParameterExtensions.AddParam(IOrmLiteDialectProvider dialectProvider,IDbCommand的dbCmd,對象的值,類型字段類型) 在ServiceStack。 OrmLite.Oracle.OracleOrmLiteDialectProvider.PrepareUpdateRowStatement(IDbCommand的dbCmd,對象objWithProperties,ICollection的1 updateFields) at ServiceStack.OrmLite.WriteExpressionCommandExtensions.UpdateOnlySql[T](IDbCommand dbCmd, T model, SqlExpression
1 onlyFields) 在ServiceStack.OrmLite.WriteExpressionCommandExtensions.UpdateOnly [T](IDbCommand的dbCmd,T模型,SqlExpression 1 onlyFields) at ServiceStack.OrmLite.OrmLiteWriteExpressionsApi.<>c__DisplayClass7
2.b__6(IDbCommand的dbCmd) 在ServiceStack .OrmLite.OrmLiteExecFilter.Exec [T](IDbConnection dbConn,Func`2 filter) at ECMAPI.Repository.Security.SecurityRepo sitory。 <> SecurityRepository.cs中的c__DisplayClassfb.b__f9(IDbConnection dbCnx):line 1970
任何線索?
的API在OrmLite打開一個交易OpenTransaction() ,我也會刪除dB.Run() – mythz
@mythz你能給我舉個例子嗎? –
我已經添加了一個重寫示例的答案。 – mythz