2010-03-05 74 views

回答

4

我也許錯了這一點,我只用亞音速2.2 SQL2008但我會建議看來源爲亞音速,即SQLLiteDataProvider.cs和審查DbType功能。

它似乎認識到類型Boolean但不是Bool,並且它不能識別您的類型時的默認值是求助於String

野兔是從功能

switch(sqliteType.ToLowerInvariant()) 
      { 
       case "text": 
       case "char": 
       case "nchar": 
       case "varchar": 
       case "nvarchar": 
        return DbType.String; 
       case "boolean": 
       case "bit": 
        return DbType.Boolean; 
       case "bigint": 
       case "int": 
       case "integer": 
        return DbType.Int64; 
       case "real": 
       case "numeric": 
       case "double": 
       case "single": 
       case "float": 
        return DbType.Single; 
       case "smallint": 
        return DbType.Int16; 
       case "date": 
       case "time": 
       case "datetime": 
       case "smalldatetime": 
       case "timestamp": 
        return DbType.DateTime; 
       case "binary": 
       case "blob": 
       case "image": 
        return DbType.Binary; 
       case "guid": 
        return DbType.Guid; 
       default: 
        return DbType.String; 
      } 

我建議改變它,看它是否工作,然後recommeding換到亞音速傢伙有問題的代碼。

+0

非常感謝!有用 ! 我已經下載了SubSonic的源代碼並修正了它。 上帝保佑開源。 – RubyWedge 2010-03-05 14:15:22

1

我在12月份檢查了一個較新版本的提供程序,修復了一些錯誤,但是從我可以告訴它沒有包含在源代碼下載中 - Rob不適用於sqlite,因此它不是優先級合併和測試。我建議看看我的版本,因爲它解決了我的一些錯誤。我有一個更新的版本,通過幾乎所有的單元測試,爲sqlite進行了修改,但不知道是否值得上傳它。由於數據庫鎖定錯誤以及核心代碼中的sql server偏差,sqlite具有文件級鎖定,因此很難讓測試通過。單元測試完全沒有覆蓋。

Link to my SQLiteProvider.cs on github

我的版本有一個稍微不同GetDbType方法,我看到一些腦死亡的原因,我不包括布爾或布爾作爲一種如此轉換,我會補充說。

+0

我將sqlite單元測試添加到了我的fork中。我發送了拉取請求以進行更改。如果他們沒有看到請求並採取行動,那麼我的版本的提供程序將保留爲分支。我無能爲力。 – 2010-03-07 08:04:01

相關問題