2016-07-27 59 views
1

我编程的应用程序目前,我想一个新的项目添加到本地数据库SQLLite:Azure离线同步。无法添加项目“查询执行失败,结果:'MISMATCH'”。

 public async Task SaveTaskAsync(Fault item) 
    { 
     try 
     { 
      if (item.Id == null) 
      { 
       await FaultTable.InsertAsync(item); 
      } 
      else 
      { 
       await FaultTable.UpdateAsync(item); 
      } 
     } 
     catch (Exception ex) 
     { 

     } 
    } 

但声明await FaultTable.InsertAsync(item);与以下错误结束了:

“Microsoft.WindowsAzure.MobileServices。 Sync.MobileServiceLocalStoreException:无法在本地存储上执行操作。“

内部例外: “SQLitePCL.SQLiteException查询执行失败,结果:'MISMATCH'。”

堆栈跟踪内部异常的:

at Microsoft.WindowsAzure.MobileServices.SQLiteStore.MobileServiceSQLiteStore.ValidateResult (SQLiteResult result) [0x00023] in <filename unknown>:0 
    at Microsoft.WindowsAzure.MobileServices.SQLiteStore.MobileServiceSQLiteStore.ExecuteNonQuery (System.String sql, IDictionary`2 parameters) [0x00057] in <filename unknown>:0 
    at Microsoft.WindowsAzure.MobileServices.SQLiteStore.MobileServiceSQLiteStore.BatchInsert (System.String tableName, IEnumerable`1 items, System.Collections.Generic.List`1 columns) [0x000f5] in <filename unknown>:0 
    at Microsoft.WindowsAzure.MobileServices.SQLiteStore.MobileServiceSQLiteStore+<>c__DisplayClass10_0.<UpsertAsyncInternal>b__0 (System.Threading.Tasks.Task t) [0x00058] in <filename unknown>:0 
    at System.Threading.Tasks.ContinuationTaskFromTask.InnerInvoke() [0x00027] in /Users/builder/data/lanes/2923/52635947/source/mono/external/referencesource/mscorlib/system/threading/Tasks/TaskContinuation.cs:63 
    at System.Threading.Tasks.Task.Execute() [0x00016] in /Users/builder/data/lanes/2923/52635947/source/mono/external/referencesource/mscorlib/system/threading/Tasks/Task.cs:2502 

回答

2

不匹配则表明SQL语句(即从模型生成的)正试图插入不存储在数据库中的表的模式相匹配的数据。你最近改变了模型吗?如果是这样,您将需要修复数据库。您可以在封面(通过使用SQLite编辑器)或 中删除数据库然后重新同步数据。