Nic*_*nes 5 sqlite servicestack ormlite-servicestack
根据另一个SO 答案,SQLite 似乎不会自动强制执行外键关系,并且必须在每个连接中显式启用它。这是ServiceStack.OrmLite报告的问题。我自己使用 ServiceStack.OrmLite 3.9.33 和 SQLite 1.0.84 重现了这种行为,其中单元测试成功(允许删除具有外键引用的记录),但实际应用程序(合法地)失败。
我不清楚的是如何/在哪里执行必要的“PRAGMAforeign_keys = ON;” SQL 命令,以便它适用于我的 SQLite 单元/集成测试的任何连接,但不适用于我的主 SQL Server 连接。理想情况下,它似乎是 IDbConnectionFactory 注册的一部分。
有人可以帮忙吗?
编辑:级联删除将是处理这种情况的另一种方法,但是尽管使用ForeignKey属性在我的FK列上正确设置了这一点,但在与SQLite一起使用时,ServiceStack.OrmLite似乎并不遵守这一点(请注意此处),尽管后者支持为了它。这可能与最初的问题有关,默认情况下禁用 SQLite 的 FK 强制,如果首先启用它,它将正常工作。
| 归档时间: |
|
| 查看次数: |
473 次 |
| 最近记录: |