【发布时间】:2012-03-30 00:13:30
【问题描述】:
我目前正在开发一个使用 Fluent NHibernate 的 MVC 3 项目。我使用 System.DayOfWeek 枚举,但是在映射它时我收到以下错误 -
Stack Trace:
[MappingException: Could not determine type for: DayOfWeek, for columns: NHibernate.Mapping.Column(WeekStart)]
NHibernate.Mapping.SimpleValue.get_Type() +456
NHibernate.Mapping.SimpleValue.IsValid(IMapping mapping) +40
NHibernate.Mapping.PersistentClass.Validate(IMapping mapping) +123
NHibernate.Mapping.RootClass.Validate(IMapping mapping) +24
NHibernate.Cfg.Configuration.ValidateEntities() +280
NHibernate.Cfg.Configuration.BuildSessionFactory() +43
FluentNHibernate.Cfg.FluentConfiguration.BuildSessionFactory() +54
[FluentConfigurationException: An invalid or incomplete configuration was used while creating a SessionFactory.
Check PotentialReasons collection, and InnerException for more detail.
Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET
Version:4.0.30319.272
示例用法 -
Map(x => x.WeekStart).CustomType(typeof(DayOfWeek));
我已经在邮件列表和 stackoverflow 上看到过这个特定问题,但它的细微差别似乎从未被完全掌握,提出问题的人被称为如何使用自定义类型映射。
我很清楚如何在流畅的地图上使用 customtype 功能并经常使用它。但是我不明白为什么这个枚举特别不能被映射。我认为它与它所属的 System 命名空间有关?
如果有人能对此有所了解,我会非常高兴。
谢谢
【问题讨论】:
-
你找到答案了吗?您可以为枚举指定自定义类型的 int,但强制转换会使属性变脏,从而导致不必要的更新。
标签: c#-4.0 fluent-nhibernate enums