如何使用SQLite for Windows运行时在C#XAML项目中实现PRAGMA foreign_keys = ON; PRAGMA recursive_triggers = ON;
。
使用Zss Manager准备数据库之后
我尝试使用以下代码段实现PRAGMA代码
public class DbConnection : IDbConnection
{
string dbPath;
SQLiteAsyncConnection conn;
public DbConnection()
{
dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "XYZ.db") ;
conn = new SQLiteAsyncConnection(dbPath);
}
public async Task InitializeDatabase()
{
var pragma1 = await conn.ExecuteAsync("PRAGMA foreign_keys=ON");
var pragma2 = await conn.ExecuteAsync("PRAGMA recursive_triggers = ON;");
但是我收到了这个错误:
.exe中出现“SQLite.SQLiteException”类型的异常,但未在用户代码中处理
其他信息:没有这样的专栏:OLD.z_rv
请任何人帮助克服这一挑战的模式
答案 0 :(得分:1)
您正在使用Zumero和SQLite-Net(SQLite上流行的C#ORM层),因此您不应该调用SQLite-Net CreateTable<>()
方法。在空数据库中调用CreateTable
时,SQLite-Net将生成并执行SQL CREATE TABLE
命令。不幸的是,这与Zumero直接冲突,Zumero期望在初始同步时,SQLite数据库中不存在任何需要从SQL Server同步的表。当然,对于Zumero而言,提供更好的错误比没有这样的专栏更好:OLD.z_rv&#34;
TL; DR:不要打电话给CreateTable
当你拨打同步时,让Zumero为你创建表格。