我目前正在为 Windows 8 编写一个 Windows 应用商店应用程序,我正在使用 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 readme :
db.Query<Val>(
"select 'Price' as 'Money', 'Time' as 'Date' from Valuation where StockId = ?",
stock.Id);
关于c# - SQLite 加入嵌入式数据库表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15993313/