具有PropertyRef的HasMany可用于具有Id()的类,但不适用于CompositeId()

时间:2019-07-11 16:37:21

标签: nhibernate fluent-nhibernate

我一直在尝试从具有复合ID的父实体中引用子实体的列表,并使用PropertyRef指定不同的联接键,例如:

CompositeId().KeyProperty(x => x.Key1, "KEY_1").KeyProperty(x => x.Key2, "KEY_2").KeyProperty(x => x.Key3, "KEY_3"); Map(x => x.MappedProperty, "MAPPED_COLUMN"); HasMany(x => x.Lst).KeyColumn("MAPPED_COLUMN").PropertyRef("MappedProperty");

子实体上的映射是Id(x => x.MappedProperty, "MAPPED_COLUMN")加上带有Map()的单个其他属性,没有对父实体的引用。

构建映射时,我不断收到MappingException和消息property not found: MappedProperty on entity Namespace.Parent

这特别令人讨厌,因为我在许多其他父/子类对中使用了相同类型的映射。花了几个小时并获得了几缕白发之后,我尝试删除CompositeId并用常规的Id代替(尽管显然这不是数据库的设计方式),如果映射并非一帆风顺地构建!!

问题:这是预期的行为吗?我不明白为什么会这样。也未能在网上找到任何有关此问题的报告,并且文档似乎并未表明HasMany / PropertyRef和CompositeId应该存在任何特定问题。

我正在使用NHibernate NuGet软件包的v5.2.2和FluentNHibernate软件包的v2.1.2。

赞赏任何指针!

0 个答案:

没有答案