c# - Fluent NHibernate - 映射 List<decimal> 到有序子表

标签 c# .net orm fluent-nhibernate fluent-nhibernate-mapping

我正在重构一个流畅的 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();

这给了我两列的关系:ParentIdAmount .唯一的问题是我还想在子表上放置一个 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/

相关文章:

c++ - Windows Phone 的 RegistryNotifyCallback 等效项

c# - 数据未写入MYSQL数据库

java - 如何在 Hibernate 中使用面向对象编程?

python - 在 django 中预取有限数量的相关对象

java - 使用多个 ID 时,在 JPQL 中执行 CRUD 操作的正确方法是什么

c# - 如何使用主体类中未表示的 AD 属性

c# - 如何打印不存在的东西?

c# - resx 文件未部署

c# - C#-异步服务器与同步服务器-套接字

c# - 在以排队方式执行 cpu 绑定(bind)作业时避免线程池饥饿的策略