我有一个名为密码的课程:
public class Password {
public virtual int PasswordID { get; set; }
public virtual int UserID { get; set; }
public virtual User User { get; set; }
}
在加载时从UserID属性自动检索属性User:
public PasswordMap() {
Table("Password");
LazyLoad();
Id(x => x.PasswordID).GeneratedBy.Identity().Column("PasswordID");
Map(x => x.UserID).Column("UserID");
HasOne(x => x.User);
}
我希望User属性在UserID更改时自动更改。
var pass = session.Load<Password>(1);
pass.UserID = 5; // User must become null or fetched Entity with ID = 5
我知道RIA服务中有这样的功能。但我在NHibernate中找不到它。
任何帮助表示感谢。
答案 0 :(得分:1)
根本不,为什么?这种行为绝对没有理由。
使用session.Load
或session.Get
按ID获取对象。
您甚至会因更改UserId而导致问题,nh的自动更改跟踪可能会识别出该问题并使用具有旧ID的用户属性的新ID更新用户...