如何查询SQLite是否存在记录?

B. *_*non 6 c# linq sqlite windows-store-apps sqlite-net

在下面的注释掉的行中,PlatypusId是红色/无法识别的,尽管它确实存在于相应的表中.

在queryResult的多行跨越赋值中,PlatypusId,where和count是红色/无法识别的.

    //var queryResult = await conn.Table<PlatypiRequested>().CountAsync().(x => x.PlatypusId.Equals(personId));
    var queryResult = from p in PlatypiRequested
                      where p.PlatypusId.Equals(platypusId)
                      select count;
Run Code Online (Sandbox Code Playgroud)

IOW,当我添加这个:

    var conn = new SQLiteAsyncConnection(SQLitePath);
    var queryResult = await conn.Table<PlatypiRequested>().CountAsync().(x => x.
Run Code Online (Sandbox Code Playgroud)

......在"x => x"之后没有任何可能性被提供.

查询我的SQLite表需要什么样的代码?

我正在使用SQLite-net包/扩展,但它的文档(什么文档?)并不过分冗长.通过查看SQLite.cs和SQLiteAsync.cs,我不是更明智的......

UPDATE

好吧,Harvey先生的回答评论让我看到了这个工作代码(Count()不可用,只有CountAsync()):

public async Task<bool> PlatypusAlreadyAdded(string platypusId)
{
    var conn = new SQLiteAsyncConnection(SQLitePath);
    var queryResult = await conn.Table<PlatypiRequested>().Where(x => x.PlatypusId == platypusId).CountAsync();
    return queryResult > 0;
}
Run Code Online (Sandbox Code Playgroud)

正如Jackie DeShannon(与我无关,AFAIK)演唱的那样,"现在世界需要的是一个"SQLite/SQLite-net for C#Windows Store应用程序"的书(或者至少是一篇冗长/内容丰富的博文,包含所有的例子)常见的SQL语句类型(CRUD)).

Rob*_*vey 6

我认为你真正想要的是类似的东西

var queryResult = await conn.Table<PeopleRequested>()
                            .Where(x => x.someField == someValue)
                            .CountAsync();  
Run Code Online (Sandbox Code Playgroud)

你的方式不会起作用,因为最后一个.运算符需要一个方法调用,而不是一个左括号或lambda表达式.