我继承了一个使用 nhibernate 的 .NET 2008 MVC 应用程序。以前的开发人员没有为这个项目生成数据库。我对 nhibernate 相当陌生,我试图找出创建数据库脚本以使用当前映射创建新数据库的最佳解决方案。我在这个网站上浏览了很多帖子,但仍然不完全明白如何让它工作。任何指导表示赞赏。
谢谢!
我继承了一个使用 nhibernate 的 .NET 2008 MVC 应用程序。以前的开发人员没有为这个项目生成数据库。我对 nhibernate 相当陌生,我试图找出创建数据库脚本以使用当前映射创建新数据库的最佳解决方案。我在这个网站上浏览了很多帖子,但仍然不完全明白如何让它工作。任何指导表示赞赏。
谢谢!
假设您有 hbm.xml 映射和有效的 nhibernate 配置文件,您可以在控制台应用程序中编写以下代码来生成 SQL 模式:
//load initial config from hibernate config file
Configuration cfg = new Configuration().Configure("hibernate.cfg.xml");
//add assembly in which the hbm.xml mappings are embedded (assuming Product class is in this assembly)
cfg.AddAssembly(typeof(Product).Assembly);
//this will generate the SQL schema file in the executable folder
new SchemaExport(cfg).SetOutputFile("schema.sql").Execute(true, false, false);
如果你有流畅的映射,它应该看起来更像这样:
Fluently.Configure().Database(MsSqlConfiguration.MsSql2005).Mappings(
m => m.FluentMappings.AddFromAssemblyOf<Product>()).ExposeConfiguration(
config =>
{
new SchemaExport(config).SetOutputFile("schema.sql").Execute(true, false, false);
}).BuildConfiguration();