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