那么,新手NHibernate的用户;试图围绕它围绕我的大脑。NHibernate可以检查数据库模式是否已经生成?
我正在考虑如何处理部署,以及后来向web应用程序注入附件(可能需要自己的持久化类)。
我在考虑使用SchemaExport
进行部署会效果不错,但我想知道是否有办法让NHibernate以通用的,基于代码的方式告诉我已经完成了模式导出,或者不。基本上,我想做smething想在这个伪代码:
if(!_cfg.HasSchemaForType(typeof(MyType))
ExportSchema(typeof(MyType));
else
UpdateSchema(typeof(MyType));
其中两个函数将在内部使用分别SchemaExport
或SchemaUpdate
。
编辑:伙计们,我很欣赏迄今为止的答案,但他们错过了一点。我试图设置的是应用程序允许添加和删除可能需要更改数据库的附加组件的方式。我不是在谈论版本化我自己的代码或类似的东西(至少,不是它的主要功能)。所以问题不在于我何时部署应用程序,而在于何时添加或删除插件。该插件(因此伪代码类型检查)是否已经部署过?如果是这样,请运行更新。如果没有,运行导出。合理?
没有试图解决部署应用程序的问题。我添加了一些额外的说明来澄清。感谢您的答复! – Paul 2009-06-16 11:50:11
我不认为他意味着在部署时......这必须是在运行时或初始化时间......插件必须为他们自己的依赖负责。 – Webjedi 2009-06-16 14:50:14
谢谢;因为它是最完整的,所以我将你标记为“已回答”。我想单独关注跟踪哪些插件已被部署可能是最好的途径,正如您在第三个项目符号中所建议的那样。 – Paul 2009-06-16 15:02:03