Windows RT上的关系SQLite

时间:2013-05-14 09:33:54

标签: sqlite windows-runtime foreign-keys windows-store-apps

我正在使用SQLite for Windows Runtime,但我没有看到任何方法来定义表之间的关系。 SQLite for WinRT是否支持此功能?

如果没有,是否有针对Windows RT的关系本地数据库的替代解决方案?

1 个答案:

答案 0 :(得分:2)

数据库引擎本身支持关系。一种方法是在创建表时指定外键:

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对象。