在玩城堡 activerecord 中的一对一关联时,我偶然发现了以下问题:
我正在尝试建模一对一的关系(在这种情况下是用户-用户配置文件)。我已经了解到这可能不是最佳实践,但让我们暂时忽略这一点(我仍在尝试了解发生了什么)。
[ActiveRecord]
public class TestUser : ActiveRecordBase<TestUser>
{
[PrimaryKey(PrimaryKeyType.GuidComb)]
public Guid Id { get; set; }
}
[ActiveRecord]
public class TestUserProfile : ActiveRecordBase<TestUserProfile>
{
[PrimaryKey(PrimaryKeyType.GuidComb)]
public Guid Id { get; set; }
[OneToOne(Cascade = CascadeEnum.All, Fetch = FetchEnum.Join)]
public TestUser User { get; set; }
}
我希望以下代码可以使用配置文件保存用户,在数据库中产生相同的 Id:
[Test]
public void save_profile_saves_user()
{
var profile = new TestUserProfile
{
User = new TestUser()
};
profile.Save();
}
然而,实际结果是两个对象都使用不同的密钥保存。我错过了什么吗?