我对此进行了研究,我发现的所有建议都是打开的.Trace = true就像这样:
db1 = DependencyService.Get<ISQLite>().GetConnection();
db1.Trace = true;
我也试过这个:
db2.Trace = true;
var categories = db2.Query<Category>("SELECT * FROM Category ORDER BY Name").ToList();
Debug.WriteLine("xxxx");
我做了这个,然后重新启动了应用程序。当我查看应用程序输出时,我只看到有关已启动的线程和xxxx的信息,但没有看到任何SQL跟踪信息。
任何人都可以就此提出建议。感谢
答案 0 :(得分:2)
您需要在Trace
上设置Tracer
和SQLiteConnection
(操作)属性,以便打印查询输出:
db.Tracer = new Action<string>(q => Debug.WriteLine(q));
db.Trace = true;
答案 1 :(得分:0)
在Generator<Promise<T>>
窗口中查找以 Application Output
将Executing
设置为true后的输出示例:
Trace
参考:https://github.com/praeclarum/sqlite-net/blob/38a5ae07c886d6f62cecd8fdeb8910d9b5a77546/src/SQLite.cs
答案 2 :(得分:0)
SQLite PCL使用Debug.WriteLine,这意味着日志仅包含在PCL的Debug版本中。
删除对sqlite.net PCL的nuget引用(保留本机引用),然后将SQLite.cs作为类添加到项目中,并执行调试构建,并设置Trace标记,并且&& #39;我会看到跟踪。
除了在我的Xamarin iOS项目中包含SQLite.cs文件之外,我没有做任何其他特殊工作:
using (var conn = new SQLite.SQLiteConnection("mydb.sqlite") { Trace = true }) {
var rows = conn.Table<PodcastMetadata>().Where(row => row.DurationMinutes < 10).Select(row => new { row.Title });
foreach (var row in rows) {
Debug.WriteLine(row);
}
}
输出:
Executing Query: select * from "PodcastMetadata" where ("DurationMinutes" < ?)
0: 10