如何从SQLite查询中返回单个类实例?

时间:2014-12-06 17:18:56

标签: c# wpf sqlite

我有这个SQLite代码试图检索记录:

String qry = String.Format("SELECT ChallengeTypeFK, {0}, {1} FROM LettersWordPhrases WHERE Id = ?", keyLang, candidateAnswersLang);
List<DBModels.LettersWordsPhrases> lwp = dbConn.Query<DBModels.LettersWordsPhrases>(qry, randomId);

我更愿意只将查询结果分配给单个DBModels.LettersWordsPhrases,但它说不可能,它需要一个List&lt;&gt; 。当我只想返回一条记录时,为什么这是必要的呢?

如何让它只返回一条记录,而不必从结果集中提取第一个(也是唯一的)元素?

2 个答案:

答案 0 :(得分:3)

假设这是SQLite-net,您还可以使用FindWithQuery来执行您要查找的内容:

String qry = String.Format("SELECT ChallengeTypeFK, {0}, {1} FROM LettersWordPhrases WHERE Id = ?", keyLang, candidateAnswersLang); 
DBModels.LettersWordsPhrases lwp = dbConn.FindWithQuery<DBModels.LettersWordsPhrases>(qry, randomId);

答案 1 :(得分:2)

您可以使用Enumerable.FirstOrDefault()

String qry = String.Format("SELECT ChallengeTypeFK, {0}, {1} FROM LettersWordPhrases WHERE Id = ?", keyLang, candidateAnswersLang); 
DBModels.LettersWordsPhrases lwp = dbConn.Query<DBModels.LettersWordsPhrases>(qry, randomId).FirstOrDefault();

请记住检查lwp是否为null,以防没有返回记录。