【发布时间】:2009-06-16 19:56:36
【问题描述】:
我似乎无法在 Fluent NHibernate(版本 524)中使用 JoinedSubClassPart 对继承类进行建模。我看到其他帖子表明我正在使用的方法(见下文)应该可以工作,但在运行时我得到以下异常(由 JoinedSubClassPart 的 ImappingPart.PositionOnDocument 方法抛出):
XunitException: FluentNHibernate.Cfg.FluentConfigurationException : 创建 SessionFactory 时使用了无效或不完整的配置。查看PotentialReasons 集合和InnerException 了解更多详情。
---- System.InvalidOperationException : 无法比较数组中的两个元素。 -------- System.NotSupportedException:已过时
这实际上应该有效还是已被弃用以支持另一种方法?
我希望我只是做错了什么,因为我确实喜欢能够通过 AddPart() 动态添加子类映射的想法。
任何帮助将不胜感激!
我的对象模型的简化版本(仍然失败)如下:
public class MyBaseClass
{
public int Id { get; set; }
public string CommonProperty { get; set; }
}
public class MySubClass1 : MyBaseClass
{
public string MySubClass1Property { get; set; }
}
public class MySubClass2 : MyBaseClass
{
public string MySubClass2Property { get; set; }
}
我的映射如下:
public class MyBaseClassMap : ClassMap<MyBaseClass>
{
public MyBaseClassMap()
{
Not.LazyLoad();
Id(x => x.Id).GeneratedBy.Identity();
Map(x => x.CommonProperty);
AddPart(new MySubClass1Map());
AddPart(new MySubClass2Map());
}
}
public class MySubClass1Map : JoinedSubClassPart<MySubClass1>
{
public MySubClass1Map()
: base("MyBaseClassId")
{
Not.LazyLoad();
Map(x => x.MySubClass1Property);
}
}
public class MySubClass2Map : JoinedSubClassPart<MySubClass2>
{
public MySubClass2Map()
: base("MyBaseClassId")
{
Not.LazyLoad();
Map(x => x.MySubClass2Property);
}
}
【问题讨论】:
标签: nhibernate fluent-nhibernate nhibernate-mapping