Fluent NHibernate 单向一对一映射

发布于 2024-12-02 19:49:29 字数 1074 浏览 3 评论 0原文

我无法访问 一对一与 Fluent NHibernate 的关系。我有 User 和 UserDetails 表,它们“共享”主键。我如何映射它们?

这是我最新/最好的尝试,失败并出现 NHibernate.Id.IdentifierGenerationException: attempts to allocate id from null one-to-one property: User

User

 protected UserMap()
{
        Table("user");
        Id(x => x.Id)
        .Column("user_key")
       .GeneratedBy.GuidComb().UnsavedValue(Guid.Empty);

         References(x => x.UserDetail)
        .PropertyRef(x=>x.User)
        .Column("user_key")
        .Not.Insert().Not.Update().Cascade.All();

}

UserDetail

protected UserDetailMap()
{
     Table("user_detail");
     Id(x => x.Id).Column("user_key")
        .GeneratedBy.Foreign("User")
        .UnsavedValue(Guid.Empty);

     References(x => x.User)
        .Column("user_key")
        .Not.Insert().Not.Update().Unique().Cascade.None();

}

I cant get at One-to-One relationship working with Fluent NHibernate. I have User and UserDetails tables and they 'share' a primary key. How do I map them?

This is my latest/best attempt, this fails with NHibernate.Id.IdentifierGenerationException: attempted to assign id from null one-to-one property: User

User

 protected UserMap()
{
        Table("user");
        Id(x => x.Id)
        .Column("user_key")
       .GeneratedBy.GuidComb().UnsavedValue(Guid.Empty);

         References(x => x.UserDetail)
        .PropertyRef(x=>x.User)
        .Column("user_key")
        .Not.Insert().Not.Update().Cascade.All();

}

UserDetail

protected UserDetailMap()
{
     Table("user_detail");
     Id(x => x.Id).Column("user_key")
        .GeneratedBy.Foreign("User")
        .UnsavedValue(Guid.Empty);

     References(x => x.User)
        .Column("user_key")
        .Not.Insert().Not.Update().Unique().Cascade.None();

}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

○愚か者の日 2024-12-09 19:49:29

试试这个

protected UserDetailMap()
{
    Table("user_detail");
    Id(x => x.Id)
       .Column("user_key")
       .GeneratedBy.Foreign("User")
       .UnsavedValue(Guid.Empty);

    HasOne(x => x.User)
       .Constrained();    
}

Try this

protected UserDetailMap()
{
    Table("user_detail");
    Id(x => x.Id)
       .Column("user_key")
       .GeneratedBy.Foreign("User")
       .UnsavedValue(Guid.Empty);

    HasOne(x => x.User)
       .Constrained();    
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文