2013-04-13 159 views
5

我目前正在爲Windows 8編寫Windows應用商店應用程序,並且正在使用SQLite爲Windows應用程序的類庫中的嵌入式數據庫提供持久性。我試圖從嵌入式數據庫中的兩個不同表中加入數據,但SQLite不斷從GenerateCommand方法中拋出一個不支持的異常。SQLite加入嵌入式數據庫表

我目前在兩個表中都有數據,並且他們在每個表中都有一個questionId加入。我試過兩種不同的方法,它們都會拋出相同的錯誤。

第一種方法:

var q = (from gameTable in db.Table<Model.GameSaved>() 
       join qTable in db.Table<Questions>() on gameTable.QuestionId equals qTable.QuestionId 
       select qTable 
       ).First(); 

第二種方法:

var q = 
       (from question in db.Table<Model.GameSaved>() 
       select question 
       ).Join(db.Table<Questions>(), 
         game => game.QuestionId, 
         questionObject => questionObject.QuestionId, 
         (game,questionObject) => questionObject) 
       .First(); 

我不完全相信我在這裏失蹤,但它必須是一些簡單而明顯的。

回答

10

你不會錯過任何東西。 Sqlite-net目前不支持通過linq連接。您可以通過提供自己的SQL並使用Query方法來解決此問題。從上面的第一個查詢看起來是這樣的:

var q = db.Query<Questions>(
    "select Q.* from Questions Q inner join GameSaved G" 
    + " on Q.QuestionId = G.QuestionId" 
).First(); 

如果你願意的話,則Query方法也支持參數。來自Sqlite-net readme

db.Query<Val>(
    "select 'Price' as 'Money', 'Time' as 'Date' from Valuation where StockId = ?", 
    stock.Id); 
+0

謝謝你的回答!似乎SQLite-net不支持連接,因爲它沒有意義,但現在我更瞭解這些限制。 –