【发布时间】:2010-04-26 10:28:40
【问题描述】:
好的,所以昨天我设法获得了最新的 NHibernate 和 FluentNHibernate 主干构建,以用于我最新的小项目。 (我正在开发一个错误跟踪应用程序。)我使用存储库模式创建了一个不错的数据访问层。
我认为我的实体没有什么特别之处,而且随着 ORM 目前的成熟,我不想手工制作数据库。 因此,我选择使用 FluentNHibernate 的自动映射功能,并将 NHibernate 的“hbm2ddl.auto”属性设置为“create”。
它真的像一个魅力。我将 NHibernate 配置放在我的应用程序域的配置文件中,进行设置,然后开始使用它。 (目前,我只创建了一些单元测试。)它创建了数据库中的所有表,以及我需要的一切。它甚至正确地映射了我的多对多关系。
但是,有一些小故障:
- 在数据库中创建的所有列都允许为空。我知道它无法预测哪些属性应该允许 null 哪些不应该,但至少我想告诉它,它应该只允许 null 对于那些 null 在 .NET 中有意义的类型(例如,非- 可空值类型不应允许为空)。
- 它创建的所有 nvarchar 和 varbinary 列的默认长度为 255。我更愿意将它们设置为 max 而不是那个。
有没有办法告诉自动映射器上面的两个简单规则?
如果答案是否定的,如果我修改它创建的表,它会正常工作吗? (所以,如果我将某些列设置为不允许为空,并更改其他一些列的允许长度,它会正确使用它们吗?)
最终编辑: 非常感谢所有路过并提供帮助的人。 我所有的 Fluent 问题现在都解决了。
【问题讨论】:
标签: .net nhibernate orm fluent-nhibernate nhibernate-mapping