SQLite加上NHibernate是否支持参照完整性/外键?

时间:2011-03-29 22:57:19

标签: nhibernate sqlite foreign-keys referential-integrity

我一直在阅读有关SQLite的NHibernate的一些内容,认为当我需要轻量级数据库处理时它可能是一个非常好的选择。

我已经阅读了以下(和链接),其中讨论了NHibernate SQLite方言在创建数据库时如何不支持外键,因为NHibernate通过 ALTER TABLE 创建外键。

我想知道,如果我通过其他工具创建SQLite数据库,我是否可以将NHibernate与所述SQLite数据库一起使用,它是否会尊重参照完整性?

Enable referential integrity with nHIbernate using SQlite database

1 个答案:

答案 0 :(得分:3)

NHibernate 3.1(当前可用的GA版本)及更早版本在通过SchemaExport / SchemaUpdate生成架构时不支持FK。如果存在FK,NHibernate将使用它们。实际上数据库将使用它们,NHibernate会将任何FK违规报告为HibernateExceptions,就像任何其他数据库一样。

使用SQLite支持FK生成计划在NHibernate 3.2中发布。修复程序位于主干中,特别是R5543:

https://github.com/JamesKovacs/nhibernate/commit/2711450b8fcea66df41699ac595b4cc814d7f64b

N.B。这是我在SourceForge.net上官方SVN回购的GitHub镜像。 GitHub只是在格式化补丁方面做得更好,更快。