2014-01-16 61 views
2

我開發了一個ServiceStack API,使用基於SQL Server的ORMLite。該應用完美地指向我的本地SQL數據庫和Azure數據庫。快樂的時光!將工作ServiceStack遷移到活動原因無法將'System.Byte'類型的對象轉換爲鍵入'System.String'

我現在已經嘗試將此解決方案移至活動服務器,該服務器擁有相同數據庫的本地副本,並且獲得了奇怪的結果。錯誤是:

Error Code: InvalidCastException 
Message: Unable to cast object of type 'System.Byte' to type 'System.String'. 
[EMEM: 1/16/2014 11:49:29 AM]: [REQUEST: {Equipment:DP112}] 
System.InvalidCastException: Unable to cast object of type 'System.Byte' to type 'System.String'. at lambda_method(Closure , Object , Object) at 
ServiceStack.OrmLite.OrmLiteDialectProviderBase`1.SetDbValue(FieldDefinition fieldDef, IDataReader dataReader, Int32 colIndex, Object instance) at 
ServiceStack.OrmLite.ReadExtensions.ExprConvertToList[T](IDataReader dataReader) at ServiceStack.OrmLite.OrmLiteResultsFilterExtensions.ExprConvertToList[T](IDbCommand dbCmd, String sql) at 
ServiceStack.OrmLite.ReadConnectionExtensions.Exec[T](IDbConnection dbConn, Func`2 filter) at 
ViewPoint.EquipmentService.Get(EMEM request) at 
ServiceStack.Host.ServiceRunner`1.Execute(IRequest request, Object instance, TRequest requestDto) 

我檢查了數據庫模式,他們看起來完全相同。

這是對3個數據庫中的2個非常高興但不是第3個的代碼。

public object Get(EMEM request) 
    { 
     var dbFactory = new OrmLiteConnectionFactory(WebConfigurationManager.ConnectionStrings["db"].ToString(), SqlServerDialect.Provider); 
     using (IDbConnection db = dbFactory.OpenDbConnection()) 
     { 
      if (request.Equipment == null) 
      { 
       List<EMEM> results = db.Select<EMEM>(); 
       return results; 
      } 
      else 
      { 
       List<EMEM> results = db.Select<EMEM>(p => p.Where(ev => ev.Equipment == request.Equipment)); 
       return results; 
      } 

     } 
    } 

我可以從字面上通過這往往表明它的數據庫相關的Azure數據庫指向連接字符串解決問題

額外信息(?):

  1. 我也寫了一put方法更新數據庫中的一行並且工作正常。
  2. 在2臺服務器上,EMEM是一張桌子,但在第三臺服務器上,它不起作用,它是一個View。

任何人都可以建議從哪裏開始尋找這個問題?

更新:我現在已經在我的本地開發數據庫上創建了一個視圖,所以它現在應該與實時數據庫相同。我期待這打破了本地開發的網站,但它有沒有... :(

+0

我認爲這是一個關於實時數據庫的視圖,但開發數據庫上的表? –

回答

1

BINGO!定了!

它鏈接到搜索,但它不是視圖的錯.. ..

有人尋找與對大部分值的不同的數據類型的表。該演示表我的工作對把所有的列設置爲字符串!

所以,看的出來,當人家給你「演示表,具有與現場相同的數據」來開發。

他們並不總是相同的!

HTH

+0

我希望demis和斯科特沒有看到這個。 –

相關問題