Отображение отношения многие-к-двум в беглом-гибернации - PullRequest
0 голосов
/ 10 мая 2011

Я работаю со структурой узел / ссылка, но у меня возникают проблемы с отображением ее с помощью свободно используемого nhibernate.

Это упрощение классов, которые я использую.


class Node
{
  public virtual IList Links { get; set; }
}

class Link
{
  public virtual Node StartNode { get; set; }
  public virtual Node EndNode { get; set; }
}

С узлом может быть связано много ссылок. Ссылка должна быть связана с двумя узлами.

И мне нужно знать, какой узел является начальным и конечным узлом, поэтому они должны быть конкретными. Вот почему я не могу использовать список и ограничить его двумя узлами.

Кто-нибудь сталкивался с этой проблемой и нашел решение?

Редактировать: Уточняющий вопрос
Я не использую Automapping, я использую методы отображения explisit: References, HasMany и HasManyToMany. В основном следуя методам, описанным во вводном руководстве: http://wiki.fluentnhibernate.org/Getting_started#Your_first_project

У меня тоже нет базы данных, я создам схему базы данных из сопоставлений, используя nhibernate.

Я спрашиваю, как мне создать отношение многие-к-двум?

1 Ответ

1 голос
/ 11 мая 2011

Ну, нет особенных отношений много-два, но то, что вы, вероятно, сделаете, будет примерно так:

public class NodeMap : ClassMap<Node>
{
    public NodeMap()
    {
        //Id and any other fields mapped in node

        HasMany(x => x.Links);
    }
}

public class LinkMap : ClassMap<Link>
{
    public LinkMap()
    {
        //Id and any other fields mapped in node

        References(x => x.StartNode);
        References(x => x.EndNode);
    }
}

Опять же, это только краткий обзор выше. Вероятно, вам понадобятся дополнительные атрибуты сопоставления, если вы хотите, например, каскадировать любые действия создания / обновления / удаления.

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