Таблица посредничества NHibernate Mapping - PullRequest
0 голосов
/ 30 декабря 2008

Привет! Мне нужна помощь в отображении следующих таблиц в файл отображения гибернации: изображение схемы http://barry -jones.com / temp / sch2.jpg

Я пытаюсь заполнить список localCalandarGroups связанными localCalendarGroups при загрузке моих userVO. Я использую промежуточную таблицу (user_localCalendarGroup), чтобы сохранить идентификаторы пользователя и localCalendarGroup

 public class UserVO
{
    public virtual int id { get; set; }
    public virtual string name { get; set; }
    public virtual string pass { get; set; }
    public virtual string email { get; set; }
    public virtual string level { get; set; }
    public virtual List<LocalCalendarGroupVO> localCalendarGroups { get; set; }
}
public class LocalCalendarGroupVO
{

    public virtual int id { get; set; }
    public virtual string name { get; set; }

}

Это мой файл сопоставления. Как я могу сообщить NHibernate о промежуточной таблице?

 <class name="UserVO" table="tb_users" lazy="false">

<id name="id" column="id">

  <generator class="native" />

</id>

<property name="name" />
<property name="pass" />
<property name="level" />
<property name="email" />
<property name="localCalendarGroups"/>

Любая помощь, указатели очень ценятся.

Ответы [ 2 ]

4 голосов
/ 30 декабря 2008

Первое, что я хотел бы предложить, это использовать IList вместо List для отображения ассоциации localCalendarGroups в классах вашего домена. Это позволит лениво загружать коллекцию. А вот файл сопоставления для класса UserVO:

<class name="UserVO" table="tb_users">
    <id name="id" column="id">
        <generator class="native" />
    </id>
    <property name="name" />
    <property name="pass" />
    <property name="level" />
    <property name="email" />

    <bag name="localCalendarGroups" table="user_localCalendarGroup">
        <key column="userID" />
        <many-to-many class="LocalCalendarGroupVO" column="calID" />
    </bag>
</class> 

И соответствующее определение класса:

public class UserVO
{
    public virtual int id { get; set; }
    public virtual string name { get; set; }
    public virtual string pass { get; set; }
    public virtual string email { get; set; }
    public virtual string level { get; set; }
    public virtual IList<LocalCalendarGroupVO> localCalendarGroups { get; set; }
}
0 голосов
/ 30 декабря 2008
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...