使用 Fluent NHibernate AutoMapping 进行级联保存
如何使用 AutoMap 持久模型和 Fluent NHibernate“打开”级联保存?
如:
我救了人,手臂也应该被救。 目前我得到
“对象引用未保存的瞬态实例 - 在刷新之前保存瞬态实例”
public class Person : DomainEntity
{
public virtual Arm LeftArm { get; set; }
}
public class Arm : DomainEntity
{
public virtual int Size { get; set; }
}
我发现关于此主题的文章,但似乎已经过时了。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
这适用于新的配置位。 有关详细信息,请参阅 http:// Fluentnhibernate.wikia.com/wiki/Converting_to_new_style_conventions
This works with the new configuration bits. For more information, see http://fluentnhibernate.wikia.com/wiki/Converting_to_new_style_conventions
已更新以与当前版本一起使用:
Updated for use with the the current version:
我发现对整个项目执行此操作的最简单方法是使用 DefaultCascade:
转到 “最简单的约定” 部分,以及其他列表。
以下是 Wiki 中的列表:
警告 - Wiki 中的某些方法名称可能是错误的。 我用我可以验证的内容(即 DefaultCascade 和 DefaultLazy)编辑了 Wiki,但无法保证其余内容。 但如果需要的话,您应该能够通过 Intellisense 找出正确的名称。
The easiest way I've found to do this for a whole project is to use DefaultCascade:
Go to "The Simplest Conventions" section on the wiki, for this, and a list of others.
Here's the list from the Wiki:
A word of warning - some of the method names in the Wiki may be wrong. I edited the Wiki with what I could verify (i.e. DefaultCascade and DefaultLazy), but can't vouch for the rest. But you should be able to figure out the proper names with Intellisense if the need arises.
约定方法签名已更改。 对于完全符合此问题要求的新答案,请参阅 这个问题。
The Convention Method Signatures have changed. For the new answer that does exactly what this question asks see THIS QUESTION.
您还可以将级联设置为所有类型的默认约定。 例如(使用您链接到的文章作为起点):
You can also make cascading the default convention for all types. For example (using the article you linked to as a starting point):