0

如何PRAGMA foreign_keys = ON; PRAGMA recursive_triggers = ON;使用 SQLite for Windows Runtime 在 C# XAML 项目中实现。

使用 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

请任何人都可以帮助解决这一挑战

4

1 回答 1

1

您将 Zumero 与 SQLite-Net(SQLite 上流行的 C# ORM 层)一起使用,因此您不应调用 SQLite-NetCreateTable<>()方法。在CreateTable空数据库中调用时,SQLite-Net 将生成并执行 SQLCREATE TABLE命令。不幸的是,这与 Zumero 直接冲突,后者期望在初始同步时,SQLite 数据库中不存在任何需要从 SQL Server 同步的表。当然,Zumero 给出更好的错误比“没有这样的列:OLD.z_rv”更好

CreateTableTL;DR:当您调用 Sync 时,不要调用Let Zumero 为您创建表。

于 2014-07-21T14:07:36.160 回答