首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >配置SchemaExport和NHibernate ()第-22条

配置SchemaExport和NHibernate ()第-22条
EN

Stack Overflow用户
提问于 2009-06-21 00:44:38
回答 1查看 5.6K关注 0票数 3

我想在一个新项目中使用DDD,并首先对我的类进行建模,然后根据类库生成数据库模式。我的计划是使用NHibernate hbm2ddl tool SchemaExport来实现这一点。

问题是,我不能让SchemaExport工作,因为它让我陷入了一个奇怪的第22条军规问题。SchemaExport需要一个Configuration对象,该对象本身需要一个有效的NHibernate配置文件以及一组数据库映射。

这里的问题是,当我执行Configure()时,它报告"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对象,这样它就不会检查数据库中是否存在给定表,或者是否还有其他需要做的事情?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-06-21 01:01:29

你能发布你的配置文件吗?

在没有表的情况下,我一直在使用这种方法,并且能够动态地生成模式。我的猜测是,您可能在某个.hbm文件中丢失了某些内容。尝试将您的模式减少到1个表,让它正常工作,然后从那里构建它。作为参考,下面是我用来生成db模式的代码:

代码语言:javascript
复制
    var cfg = new Configuration();
    cfg.Configure();
    var schema = new SchemaExport(cfg);
    schema.Create(true, true);

这也会为您将脚本推送到控制台,这样您就可以看到针对数据库生成了什么SQL。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1022894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档