使用 NHibernate StatelessSession 级联集合
使用无状态会话批量插入包含其他实体集合(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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您必须在子类中创建
Parent
属性,或者使用有状态会话。You have to either create the
Parent
property in the child class, or use a stateful session.