Несколько таблиц \ объектов в одном отображении nHibernate - PullRequest
0 голосов
/ 08 марта 2010

Я пытаюсь создать отображение 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;
    }
}

Базовая структура БД аналогична таблицам, но есть таблица связей, которая связывает пользователя и роль с использованием их соответствующих идентификаторов: UserRoleLinkTable [ личность User_Role_ID (pk) userID (FK для таблицы пользователя) Ролид (от ФК до Ролевого стола) ]

После игры с nHibernate это похоже на то, что я хочу попробовать (но это не работает!):

<?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>

У меня есть сопоставления \ сущности, которые работают для объектов Role и User (используются в других аспектах проекта), но как мне перетащить эту информацию в один класс UserDetails? Точка пользователя подробно, чтобы иметь возможность возвращать всю эту информацию вместе как один объект. Можно ли создать (для лучшего описания) контейнер, используя отображение nHibernate и таким образом отобразить данные?

Надеюсь, достаточно информации, чтобы помочь решить эту проблему - заранее спасибо за предоставленную помощь!

Приветствия

Morris

1 Ответ

0 голосов
/ 18 марта 2010

С помощью обновления к этому посту я с тех пор понял, что это нельзя сделать, и что я думал о моделировании неправильным путем.

Я пошел и создал реконструированный класс UserRoles, чтобы онунаследовано от пользователя и вместо него имело свойство Roles.Это было гораздо проще реализовать, поэтому проблема была решена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...