WP7的最佳选择是:SQLite还是Data.Linq?

WP7的最佳选择是:SQLite还是Data.Linq?,sqlite,windows-phone-7,Sqlite,Windows Phone 7,我正在我的应用程序中使用SQLite(WP 7.1和Community.CsharpSqlite.SqlLiteClient.WP7.dll程序集) 当我使用内部连接时,SQLite DataReader对象的速度非常慢(大约3到5秒,用1000条记录填充一个列表) 我正在考虑删除SQLite数据库并开始使用“sdf”数据库 有人知道为什么SQLite DataReader对象在WP中如此缓慢吗 这是我的示例代码(表1是一个包含5000条记录和5列的表。表2包含表1中的chield记录) WP7

我正在我的应用程序中使用SQLite(WP 7.1和Community.CsharpSqlite.SqlLiteClient.WP7.dll程序集)

当我使用内部连接时,SQLite DataReader对象的速度非常慢(大约3到5秒,用1000条记录填充一个列表)

我正在考虑删除SQLite数据库并开始使用“sdf”数据库

有人知道为什么SQLite DataReader对象在WP中如此缓慢吗

这是我的示例代码(表1是一个包含5000条记录和5列的表。表2包含表1中的chield记录)


WP7的SQlite实现完全是托管代码这一事实可能至少是部分原因。

表上有索引吗?如果我直接在数据库上运行查询,我会很快得到结果。问题是当我从应用程序运行时。而且,问题只出现在ExecuteReader()方法中。ExecuteReader可能在返回第一个结果之前读取整个结果,如果结果很大,则可能需要一段时间。SQLite shell(据我所知)立即返回第一个找到的值。
using (SqliteConnection conn = new SqliteConnection(PhoneUtil.ConnectionString))
{
   conn.Open();
   using (SqliteCommand cmd = conn.CreateCommand())
   {
      cmd.CommandText = "select t1.* from table1 as t1 inner join table2 as t2 on t1.id = t2.id where t1.year=2013";

      // the line below is very slow.
      using (SqliteDataReader reader = cmd.ExecuteReader())
      {
         // Here is fast
         while (reader.Read())
         {
            // ...
         }
      }
    }
}