2013-04-13 116 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不支持连接,因为它没有意义,但现在我更了解这些限制。 –