我有这个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; 。当我只想返回一条记录时,为什么这是必要的呢?
如何让它只返回一条记录,而不必从结果集中提取第一个(也是唯一的)元素?
答案 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,以防没有返回记录。