ServiceStack - OrmLite(可能) - 从字符串转换为uniqueidentifier时转换失败

时间:2015-08-14 08:10:45

标签: servicestack ormlite-servicestack

它工作然后它突然失败了。尝试一些解析,但没有运气。 Error Code: SqlException

Message Conversion failed when converting from a character string to uniqueidentifier.

堆栈跟踪

[SalesOrderDetailsGet:14/08/2015上午07时59分29秒]:[要求{的SalesOrderID:676b44dcb0c245a5a3191cda194b3267}] System.Data.SqlClient.SqlException(0x80131904):从字符串转换为uniqueidentifier当转换失败。在System.Data.SqlClient.SqlConnection.OnError(SqlException异常,布尔breakConnection,动作1 wrapCloseInAction) at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection, Action 1 wrapCloseInAction)在System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj,布尔callerHasConnectionLock,布尔asyncClose)在System.Data .SqlClient.TdsParser.TryRun(RunBehavior runBehavior,SqlCommand cmdHandler,SqlDataReader dataStream,BulkCopySimpleResultSet bulkCopyHandler,TdsParserStateObject stateObj,Boolean&amp; dataReady)位于System.Data.SqlClient.SqlDataReader的System.Data.SqlClient.SqlDataReader.TryHasMoreRows(Boolean&amp; moreRows)。在ServiceStack.OrmLite.OrmLiteResultsFilterExtensions.ConvertTo [T]的ServiceStack.OrmLite.OrmLiteUtils.ConvertTo [T](IDataReader dataReader,IOrmLiteDialectProvider dialectProvider)的System.Data.SqlClient.SqlDataReader()处的TryReadInternal(Boolean setTimeout,Boolean&amp; more) (IDbCommand dbCmd,String sql)at ServiceStack.OrmLite.OrmLiteReadCommandExtensions.SingleById [T](IDbCommand dbCmd,O bject值)ServiceStack.OrmLite.OrmLiteReadApi&LT;&GT; c__DisplayClass3c 1.<SingleById>b__3b(IDbCommand dbCmd) at ServiceStack.OrmLite.OrmLiteExecFilter.Exec[T](IDbConnection dbConn, Func 2滤波器)在ServiceStack.OrmLite.OrmLiteReadExpressionsApi.Exec [T](的IDbConnection dbConn,Func键2 filter) at ServiceStack.OrmLite.OrmLiteReadApi.SingleById[T](IDbConnection dbConn, Object idValue) at BookWS.ServiceLogic.Sales.SalesOrderDataProcess.GetSalesOrderById(Guid id) in C:\Users\Carl\Documents\Visual Studio 2013\Projects\BookWS\BookWS\BookWS.ServiceLogic\Sales\SalesOrderDataProcess.cs:line 38 at BookWS.ServiceInterface.SalesOrderServices.Get(SalesOrderDetailsGet request) in C:\Users\Carl\Documents\Visual Studio 2013\Projects\BookWS\BookWS\BookWS.ServiceInterface\Sales\SalesOrderServices.cs:line 40 at lambda_method(Closure , Object , Object ) at ServiceStack.Host.ServiceRunner 1.Execute(IRequest请求,对象实例,TRequest requestDto)ClientConnectionId:0a6a1c79-14e9-4575-9fab-21c542508a78错误号码:8169,状态:2,类:16

GET:

public Object Get(SalesOrderDetailsGet request)
        {
            SalesOrderDataProcess sODP = new SalesOrderDataProcess(Db);
            SalesOrder salesOrderTemp = sODP.GetSalesOrderById(request.SalesOrderId);

数据层:

 public SalesOrder GetSalesOrderById(Guid id)
        {
            return _dbConnection.SingleById<SalesOrder>(id);
        }

跑步停在了上面的区块

return _dbConnection.SingleById<SalesOrder>(id);

非常感谢。

1 个答案:

答案 0 :(得分:2)

这是common SQL Server exception,表示无法将字符串值转换为 uniqueidentifier (即GUID)。

返回并确保表中的所有数据都具有uniqueidentifier字段的值,并且该值是有效的GUID。