使用 NHibernate StatelessSession 级联集合

发布于 2024-10-04 13:06:47 字数 463 浏览 1 评论 0原文

使用无状态会话批量插入包含其他实体集合(HasMany 映射)的实体的正确方法是什么?

例如,父类映射如下:

class ParentMap : ClassMap<Parent>
{
    public ParentMap()
    {
        Id(x => x.Id)
           .GeneratedBy.Increment();

        HasMany(x => x.ChildNodes)
           .KeyColumns.Add("Parent_id")
           .Cascade.All();
    }  
}

无状态会话忽略 Cascade 选项,因此子节点不会自动持久化。我可以自己迭代该集合,但无法设置关系,因为 Parent_id 列不存在作为我可以写入的属性。

我错过了什么吗?

What is the proper way to bulk insert entities which contain collections of other entities (a HasMany mapping), using stateless sessions?

E.g. Parent class is mapped like this:

class ParentMap : ClassMap<Parent>
{
    public ParentMap()
    {
        Id(x => x.Id)
           .GeneratedBy.Increment();

        HasMany(x => x.ChildNodes)
           .KeyColumns.Add("Parent_id")
           .Cascade.All();
    }  
}

Stateless session ignores the Cascade option, so child nodes are not persisted automatically. I could iterate through the collection myself, but then I cannot set the relation, because Parent_id column does not exist as a property I could write to.

Am I missing something?

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

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

发布评论

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

评论(1

尘世孤行 2024-10-11 13:06:47

您必须在子类中创建 Parent 属性,或者使用有状态会话。

You have to either create the Parent property in the child class, or use a stateful session.

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