如何使用 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);
}
可以使用 CreateCommand
和 ExecuteDeferredQuery
来获得惰性游标:
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);
}
我正在使用这个包: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);
}
可以使用 CreateCommand
和 ExecuteDeferredQuery
来获得惰性游标:
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);
}