计算外键财产

时间:2014-01-01 20:11:40

标签: nhibernate fluent-nhibernate

我有一个名为密码的课程:

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中找不到它。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:1)

根本不,为什么?这种行为绝对没有理由。

使用session.Loadsession.Get按ID获取对象。

您甚至会因更改UserId而导致问题,nh的自动更改跟踪可能会识别出该问题并使用具有旧ID的用户属性的新ID更新用户...