我已经阅读了一些关于 NHibernate with SQLite 的内容,认为当我需要轻量级数据库处理时它可能是一个非常好的选择。
我已经阅读了以下(和链接),其中讨论了 NHibernate SQLite 方言如何在创建数据库时不支持外键,因为 NHibernate 通过ALTER TABLE创建外键。
我想知道,如果我通过其他工具创建一个 SQLite 数据库,我能否将 NHibernate 与所述 SQLite 数据库一起使用,它会尊重参照完整性吗?
我已经阅读了一些关于 NHibernate with SQLite 的内容,认为当我需要轻量级数据库处理时它可能是一个非常好的选择。
我已经阅读了以下(和链接),其中讨论了 NHibernate SQLite 方言如何在创建数据库时不支持外键,因为 NHibernate 通过ALTER TABLE创建外键。
我想知道,如果我通过其他工具创建一个 SQLite 数据库,我能否将 NHibernate 与所述 SQLite 数据库一起使用,它会尊重参照完整性吗?
NHibernate 3.1(当前可用的 GA 版本)和更早版本在通过 SchemaExport/SchemaUpdate 生成模式时不支持 FK。如果存在 FK,NHibernate 将使用它们。实际上,数据库会使用它们,NHibernate 会将任何 FK 违规报告为 HibernateExceptions,就像任何其他数据库一样。
计划在 NHibernate 3.2 中发布对使用 SQLite 生成 FK 的支持。修复在后备箱中,特别是 R5543:
https://github.com/JamesKovacs/nhibernate/commit/2711450b8fcea66df41699ac595b4cc814d7f64b
注意这是我在 SourceForge.net 上的官方 SVN 存储库的 GitHub 镜像。GitHub 在格式化补丁方面做得更好、更快。