我正在使用此链接作为参考使用sqlite.net构建Windows Phone 8应用程序: -
http://developer.nokia.com/community/wiki/How_to_use_SQLite_in_Windows_Phone
项目中有一个数据库正在隔离存储中播种。该数据库只包含一个表,其中有近26k个条目。
我正在尝试连接到MainPage.xaml.cs中的该数据库,如下所示: -
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
base.OnNavigatedTo(e);
using (SQLiteConnection db = new SQLiteConnection(App._dbPath))
{
db.GetTableInfo("IWMCemeteries");
try
{
List<IWMCemeteries> cemeteriesList = db.Table<IWMCemeteries>().ToList<IWMCemeteries>();
MessageBox.Show("Number of elements in table is " + cemeteriesList.Count);
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
问题是显示消息对话框需要太长时间(超过25秒)。
我尝试了另一种运行原始查询的方法,如下所示: -
List<IWMCemeteries> cemeteries = db.Query<IWMCemeteries>("select * from IWMCemeteries");
MessageBox.Show("Number of elements in list is " + cemeteries.Count);
但这似乎需要更长时间!(差不多30秒)。
有人可以告诉我这里的错误吗?
谢谢,
拉杰夫
答案 0 :(得分:3)
这对我来说没有错。正如一些人注意到的那样,有26k行你开始使用有趣的大量数据。因此,在使用“精简”数据库的移动设备中,您必须根据您的实际需要调整您的请求:
在任何应用中,但主要是在移动设备中,您必须考虑移动的数据量。
通过这种方式,任何请求都是即时的,您的应用程序将表现良好。
答案 1 :(得分:1)
您的查询没有任何问题。只需限制从数据库中获取的数据。它是一种功率有限的移动设备,而不是一台完整的电脑。