我想用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."
So the Configure()
方法要求表存在,而SchemaExport
应该是基于创建它Configuration
我无法创建,因为该表不存在。
那么,我到底应该如何创建一个有效的 NHibernateConfiguration
包含所需的映射SchemaExport
实际做一些有用的事情而不需要Configure()
抛出并抱怨它找不到要创建的表SchemaExport
?有没有我可以设置的“模式”Configuration
对象,这样它就不会检查数据库中是否存在给定的表,或者我还需要做其他事情吗?
可以贴一下你的配置文件吗?
我一直在没有表的情况下使用这种方法,并且能够动态生成模式。我的猜测是您的 .hbm 文件之一可能有问题。尝试将您的架构削减为 1 个表,使其正常工作,然后从那里构建它。作为参考,这里是我用来生成数据库模式的代码:
var cfg = new Configuration();
cfg.Configure();
var schema = new SchemaExport(cfg);
schema.Create(true, true);
这还将为您将脚本推送到控制台,以便您可以查看针对数据库生成的 SQL。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)