C# 一个nHibernate映射中的多个表\对象

C# 一个nHibernate映射中的多个表\对象,c#,nhibernate,C#,Nhibernate,我正在尝试为类结构创建nHibernate映射,如下所示: class UserDetails{ Guid id; User user; Role role; public User UserInfo{ get;set; } public Role UserRoles{ get;set; } public Guid ID{ Get; set; } } class

我正在尝试为类结构创建nHibernate映射,如下所示:

   class UserDetails{
    Guid id;
    User user;
    Role role;

    public User UserInfo{
        get;set;
    }

    public Role UserRoles{
        get;set;
    }

    public Guid ID{
        Get; set;
    }
}

class User{
    string name;
    int id;

    public string Name{
        get;set;
    }

    public int ID{
        get;set;
    }
}

class Role{

    string roleName;
    string roleDesc;
    int roleId;

    public string RoleName{
        get;set;
        }

    public string RoleDesc{
        get;set;
    }

    public int RoleID{
        get;set;
    }
}
底层数据库结构类似于表,但有一个链接表,使用各自的ID链接用户和角色: 用户角色链接表[ 身份用户\角色\ ID(pk) 用户ID(FK到用户表) roleid(FK到角色表) ]

在玩过nHibernate之后,这与我想要尝试和实现的目标类似(但它不起作用!):


我有一些映射\实体,它们似乎适用于角色和用户(用于项目的其他方面)对象,但如何将这些信息拉入一个UserDetails类?用户详细信息的要点是能够将所有这些信息作为一个对象一起返回。是否可以使用nHibernate映射创建(为了更好的描述)容器并以这种方式映射数据

希望有足够的信息来帮助解决这个问题-提前感谢所有的帮助

干杯


莫里斯(Morris)

通过对这篇文章的更新,我意识到这是不可能做到的,而且我对模特的想法是错误的

我去创建了一个重新建模的UserRoles类,这样它就从User继承了一个名为Roles的属性。这是一个更容易实现的解决方案,所以问题解决了

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping
  xmlns="urn:nhibernate-mapping-2.2"
  assembly="Admin"
  namespace="Admin"
>
  <class name="UserDetails" lazy="false" table="USER">
    <id name="ID">
      <generator class="guid"></generator>
    </id>

    <one-to-one name="UserInfo" class="User" lazy="false" cascade="none"/>

    <bag
      name="UserRoles"
      inverse="false"
      table="Role"
      lazy="false"
      cascade="none"
    >
      <key column="Role" />
      <many-to-many class="Role" column="ROLE_ID" />
    </bag>  
  </class>
</hibernate-mapping>