Nhibernate Castle ActiveRecord:一对一

Nhibernate Castle ActiveRecord:一对一,nhibernate,activerecord,castle,one-to-one,Nhibernate,Activerecord,Castle,One To One,在castle activerecord中处理一对一关联时,我偶然发现了以下问题: 我试图建立一个一对一的关系模型(在本例中是user-userprofile)。我已经了解到,这可能不是一个最佳实践,但让我们暂时忽略这一点(我仍在试图了解到底发生了什么) 但是,实际结果是两个对象都使用不同的键保存。我错过了什么吗?我自己找到了答案。定义OneToOne的关系一侧的PrimaryKeyType应具有PrimaryKeyType的PrimaryKey。外部: [ActiveRecord] publi

在castle activerecord中处理一对一关联时,我偶然发现了以下问题:

我试图建立一个一对一的关系模型(在本例中是user-userprofile)。我已经了解到,这可能不是一个最佳实践,但让我们暂时忽略这一点(我仍在试图了解到底发生了什么)


但是,实际结果是两个对象都使用不同的键保存。我错过了什么吗?

我自己找到了答案。定义OneToOne的关系一侧的PrimaryKeyType应具有PrimaryKeyType的PrimaryKey。外部:

[ActiveRecord]
public class TestUserProfile : ActiveRecordBase<TestUserProfile>
{
    [PrimaryKey(PrimaryKeyType.Foreign)]
    public Guid Id { get; set; }

    [OneToOne(Cascade = CascadeEnum.All, Fetch = FetchEnum.Join)]
    public TestUser User { get; set; }

 }
[ActiveRecord]
公共类TestUserProfile:ActiveRecordBase
{
[PrimaryKey(PrimaryKeyType.Foreign)]
公共Guid Id{get;set;}
[OneTONE(Cascade=CascadeEnum.All,Fetch=FetchEnum.Join)]
公共TestUser用户{get;set;}
}
回到更彻底地阅读文档

    [Test]
    public void save_profile_saves_user()
    {
        var profile = new TestUserProfile
        {
            User = new TestUser()
        };

        profile.Save();

    }
[ActiveRecord]
public class TestUserProfile : ActiveRecordBase<TestUserProfile>
{
    [PrimaryKey(PrimaryKeyType.Foreign)]
    public Guid Id { get; set; }

    [OneToOne(Cascade = CascadeEnum.All, Fetch = FetchEnum.Join)]
    public TestUser User { get; set; }

 }