2011-03-29 88 views
4

我一直在用SQLite阅读一些关于NHibernate的知识,认为它可能是一个很好的选择,当我需要轻量级数据库处理时。SQLite与NHibernate结合是否支持引用完整性/外键?

我读过以下(和链接),讨论NHibernate SQLite方言如何不支持外键WHILE CREATING数据库,因为NHibernate通过创建外键ALTER TABLE

我想知道,如果我通过其他工具创建SQLite数据库,我能够使用NHibernate与所述SQLite数据库,它会尊重参照完整性吗?

Enable referential integrity with nHIbernate using SQlite database

回答

3

NHibernate的3.1(现有GA释放)和较早产生的SchemaExport通过/ SchemaUpdate工具的模式时,不支持FKS。如果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在格式化补丁方面做得更好,更快。

+0

谢谢!一个很好的答案是,它不仅是信息丰富的,而且也是我所希望的! – Max 2011-03-31 06:46:18