如何使用 Sqlite-net 包从 Sqlite 3 获取所有行到对象列表?

How to get all rows from Sqlite 3 with the Sqlite-net package to a List of objects?

我正在使用这个包:https://github.com/praeclarum/sqlite-net 我可以将对象列表很好地插入到数据库中。 但是,我似乎无法 "GET * FROM TABLE" 到列表。 我知道这个包中的内置函数。在尝试之前,我使用的是:

return (List<MyClass>)(from i in connection.Table<MyClass>() select i).ToList();

这很好用。但是,我现在需要创建一个手动 SQL 查询。

这是我认为的大致样子:

List<MyClass> Temp = new List<MyClass>();
var Result = connection.Execute("SELECT * FROM Car MyTable");
while (Result.HasRows())
{
    Temp.Add(Result);
}

可以使用 CreateCommandExecuteDeferredQuery 来获得惰性游标:

var sqlQueryEnumerable = sqlConn.CreateCommand("select * from Customer").ExecuteDeferredQuery<SomeTableClass>();
foreach (var row in sqlQueryEnumerable)
{
    Debug.WriteLine(row.SomeColumn);
}

如果您需要 List,如您的示例代码所示,而不是 IEnumerable,请使用 ExecuteQuery:

var listOfCustomers = sqlConn.CreateCommand("select * from Customer").ExecuteQuery<Customer>();
foreach (var listItem in listOfCustomers)
{
    Debug.WriteLine(listItem.CustomerID);
}