我正在重构一个流畅的 nHibernate 映射,但我似乎无法弄清楚这一点。我想重新映射类型为 List<decimal>
的属性到子表,但使用单个 HasMany
如果可能的话。
现在我们有:Map(x => x.DecimalList);
这给了我们一个很好的类型 varbinary(8000)
在我尝试将其移动到有序子表时,我尝试过:
HasMany(x => x.DecimalList)
.Table("ParentTable_DecimalList")
.KeyColumn("Id")
.Element("Amount")
.KeyColumn("ParentId")
.Cascade.AllDeleteOrphan();
这给了我两列的关系:ParentId
和 Amount
.唯一的问题是我还想在子表上放置一个 Order 或 Primary Key/ID 列,以确保我们无论如何都保留列表的顺序。
有没有一种方法可以添加一个 strong int 主键列和/或一个 Order 列,而无需将其分解为更复杂的子对象/映射?
最佳答案
将其映射为列表
HasMany(x => x.DecimalList)
...
.AsList(x => x.WithColumn("ListPosition")
默认情况下,它被映射为一个包,不保留顺序。
关于c# - Fluent NHibernate - 映射 List<decimal> 到有序子表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8080716/