我正在为 Windows 运行时使用 SQLite,但我看不到任何定义表之间关系的方法。SQLite for WinRT 是否支持此功能?
如果没有,对于 Windows RT 的关系本地数据库是否有任何替代解决方案?
我正在为 Windows 运行时使用 SQLite,但我看不到任何定义表之间关系的方法。SQLite for WinRT 是否支持此功能?
如果没有,对于 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
对象。