我正在使用SQLite for Windows Runtime但我没有看到任何方法来定义表之间的关系。 WinRT 的 SQLite 支持此功能吗?
如果没有,Windows RT 的关系本地数据库是否有任何替代解决方案?
最佳答案
数据库引擎本身支持关系。一种方法是在创建表时指定外键:
CREATE TABLE Foo(
Id integer primary key autoincrement not null ,
...
)
CREATE TABLE Bar(
Id integer primary key autoincrement not null,
FooId integer not null REFERENCES Foo (Id) ON UPDATE CASCADE,
...
)
我相信每个数据库连接还必须通过执行以下编译指示来启用外键:
PRAGMA foreign_keys = ON
就可用的 ORM 而言,我想这取决于情况。我只用过SQLite-Net ,所以我只能谈谈这一点。据我所知,SQL-Net 目前不支持外键功能。您必须手动管理这些关系。
例如,假设您的 Foo
对象中有一个对 Bar
对象的引用。
对于创建表,您不能使用 SQLite-Net 表创建方法。您必须使用 SQL 来创建表以及关系。
此外,当您使用 SQL-Net 加载 Foo
对象时,相关的 Bar
对象不会自动加载。您需要进行第二次 SQL-Net 调用来加载 Bar
对象。
关于sqlite - Windows RT 上的关系型 SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16539683/