我的Windows Phone 8应用程序(C#/ XAML / SQLite)在我在Windows商店中发布后,工作速度非常慢,因为" beta"然后安装到我的智能手机(Lumia 620)。那些"冻结"我的应用程序执行的位置选择sqlite数据库文件。在没有数据库查询的页面上,一切都很完美。所以我认为就是这样。
我不明白的是,当我从Visual Studio部署它时,具有完全相同设置的应用程序正常工作。
我在nokia.com上使用了本主题中描述的sqlite - http://developer.nokia.com/Community/Wiki/How_to_use_SQLite_in_Windows_Phone
我的解决方案中有c ++ sqlite项目,sqlite-net包中有两个文件(SQLite.cs和SQLiteAsync.cs)
构建配置是"发布"和平台是" ARM"。
数据库查询示例:
using MyApp.Model.Entities;
using System.Collections.Generic;
namespace MyApp.DAL
{
public class MyAppRepository
{
private string dbPath = @"Assets/words.db";
public List<Word> GetWordsByCatId(int id)
{
var sql = string.Format(@"
SELECT w.[id],
w.[word_en],
w.[word_ru]
FROM words w INNER JOIN word_links l ON w.[id]=l.[word]
WHERE l.category = {0};", id);
using (var conn = new SQLite.SQLiteConnection(dbPath))
{
var list = conn.Query<Word>(sql);
return list;
}
}
public List<Cat> GetCats2()
{
var sql = string.Format(@"
SELECT c.[id],
c.[name_en],
c.[name_ru],
COUNT(l.[id]) words
FROM categories c
LEFT JOIN word_links l ON c.[id]=l.[category]
GROUP BY c.[id]
HAVING words>1;");
using (var conn = new SQLite.SQLiteConnection(dbPath))
{
var list = conn.Query<Cat>(sql);
return list;
}
}
public List<Cat> GetCatsByWordId(int id)
{
var sql = string.Format(@"
SELECT c.[id],
c.[name_en],
c.[name_ru]
FROM categories c INNER JOIN word_links l ON c.[id]=l.[category]
WHERE l.word = {0};", id);
using (var conn = new SQLite.SQLiteConnection(dbPath))
{
var list = conn.Query<Cat>(sql);
return list;
}
}
}
}