gpt4 book ai didi

nhibernate - 如何在 NHibernate 中使用不可为空的索引创建列表集合?

转载 作者:行者123 更新时间:2023-12-04 20:22:22 24 4
gpt4 key购买 nike

我正在使用 FluentNHibernate 来映射双向一对多关系,其中排序很重要,所以我使用了一个列表:

        HasMany(x => x.Children)
.AsList(index => index.Column("CHILD_INDEX"))
.KeyColumn("PARENT_ID")
.Not.LazyLoad()
.Access.CamelCaseField()
.Cascade.AllDeleteOrphan();

另一方面,它是这样映射的:
        References(x => x.Parent)
.Column("PARENT_ID")
.Not.Nullable()
.Fetch.Join()
.Not.LazyLoad()
.Cascade.SaveUpdate();

现在在我的实际数据库中, CHILD_INDEX 列不可为空。但是,当 NHibernate 在插入期间保留子元素时,它不会插入 CHILD_INDEX 列。然后执行更新以设置 CHILD_INDEX。这对我来说很奇怪,因为它在插入时肯定有索引值。

有没有办法告诉 NHibernate 在插入过程中写入索引列?

最佳答案

双向索引集合(即列表和字典)是 not supported .

由于它们需要避免插入空值然后更新(参见 6.4. One-To-Many Associations 中的注释),解决方法是使用包而不是列表并在多侧创建常规索引属性。

然后,您可以包装集合操作以处理双方的引用和索引。

关于nhibernate - 如何在 NHibernate 中使用不可为空的索引创建列表集合?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5045925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com