在嵌入式数据库表中加入SQLite
本文关键字:SQLite 嵌入式 数据库 | 更新日期: 2023-09-27 18:09:07
我目前正在为Windows 8编写一个Windows Store应用程序,我正在使用SQLite在Windows应用程序的类库中对嵌入式数据库进行持久化。我试图连接数据从两个不同的表在我的嵌入式数据库,但SQLite不断抛出一个不支持的异常从他们的GenerateCommand方法。
我目前在两个表中都有数据,它们在每个表中都有一个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();
我不确定我在这里错过了什么,但它必须是简单和明显的。
你没有错过任何东西。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自述文件:
db.Query<Val>(
"select 'Price' as 'Money', 'Time' as 'Date' from Valuation where StockId = ?",
stock.Id);