的NHibernate的SchemaExport和配置()捕获-22(NHibernate Sche

2019-06-23 18:12发布

我想用DDD在一个新的项目,我的第一类建模,然后基于类库的数据库架构。 我的计划是用NHibernate的就是hbm2ddl工具来做到这SchemaExport

问题是,我不能得到SchemaExport来因为它使我处于一种奇怪的22条军规问题的工作。该SchemaExport需要一个Configuration对象,本身就需要一个有效的NHibernate的配置文件,以及一组数据库的映射。

在22条军规这里要说的是,当我做了配置(),它抱怨"Could not determine the name of the table for entity 'MyEntity'; remove the 'table' attribute or assign a value to it." 所以Configure()方法需要一个表中,而SchemaExport应该在这个基础上创建它Configuration ,我不能创建,因为该表是不是不存在。

那么,如何在地球上我应该建立一个有效的NHibernate的Configuration包含所需的映射SchemaExport实际做一些有用的东西,而不必Configure()抛出,并抱怨说,它无法找到要与创建表SchemaExport ? 是否有一个“模式”我可以设置Configuration对象,这样就不会检查给定的表存在的数据库,或者是有别的东西,我需要做什么?

Answer 1:

您可以发布您的配置文件?

我用这个方法所有的时间没有表存在,并且我能够动态生成的模式。 我的猜测是,你可以在你的.hbm文件中的一个有东西掉。 尝试削减你的架构下,以1台,得到它的工作,然后从那里建立起来。 作为参考,这里是我用来生成数据库架构的代码:

    var cfg = new Configuration();
    cfg.Configure();
    var schema = new SchemaExport(cfg);
    schema.Create(true, true);

这也将推动脚本到控制台你,所以你可以看到SQL是针对数据库生成的内容。



文章来源: NHibernate SchemaExport and Configure() catch-22