Fluent NHibernate - 映射列表<十进制>到已订购的子表

发布于 2024-12-14 10:53:22 字数 622 浏览 1 评论 0原文

我正在重构一个流畅的 nHibernate 映射,但我似乎无法弄清楚这一点。我想将 List 类型的属性重新映射到子表,但如果可能,请使用单个 HasMany

现在我们有:Map(x => x.DecimalList); 这给了我们一个很好的类型 varbinary(8000)

在我尝试将其移动到我尝试过的有序子表中:

HasMany(x => x.DecimalList)
.Table("ParentTable_DecimalList")
.KeyColumn("Id")
.Element("Amount")
.KeyColumn("ParentId")
.Cascade.AllDeleteOrphan();

这给了我两列的关系: ParentId< /code> 和金额。唯一的问题是我还想在子表上放置一个顺序或主键/ID 列,以确保无论如何都能保留列表的顺序。

有没有办法添加强 int 主键列和/或顺序列,而不将其分解为更复杂的子对象/映射?

I'm refactoring a fluent nHibernate mapping, and I can't seem to figure this one out. I want to remap a property with type List<decimal> to a child table, but using a single HasMany if possible.

Right now we have: Map(x => x.DecimalList);
Which gives us a nice type of varbinary(8000)

In my attempts to move this to an ordered child table I've tried:

HasMany(x => x.DecimalList)
.Table("ParentTable_DecimalList")
.KeyColumn("Id")
.Element("Amount")
.KeyColumn("ParentId")
.Cascade.AllDeleteOrphan();

And this gives me the relationship, with two columns: ParentId and Amount. The only problem is that I also want to put an Order or Primary Key/ID column on the child table to ensure that we preserve the list's ordering no matter what.

Is there a way to add a strong int Primary Key column and / or an Order column without busting this out to a more complex child object/map?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

半寸时光 2024-12-21 10:53:22

将其映射为列表

HasMany(x => x.DecimalList)
...
.AsList(x => x.WithColumn("ListPosition")

默认情况下,它被映射为包,这不保留顺序。

Map it as a list

HasMany(x => x.DecimalList)
...
.AsList(x => x.WithColumn("ListPosition")

By default, it is mapped as a bag, which doesn't preserve the order.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文