Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Вопрос по конфигурации Fluent NHibernate  [new]
rodionovstepan
Member

Откуда:
Сообщений: 1
Всем привет!

Возникла проблема с конфигурацией отношения *-*.
Есть сущность Person:
public class Person
{
 // ...
 public virtual IEnumerable<Person> Agents { get { return _agents; } }

 private readonly IList<Person> _agents = new List<Person>();
 // ...

 public Person(int id)
 {
   // ...
 }
}

Маппинг этой сущности:
public class PersonMapping: ClassMap<Person>
{
 public PersonMapping()
 {
   // ...
   HasManyToMany(x => x.Agents)
                .Access.ReadOnlyPropertyThroughCamelCaseField(Prefix.Underscore)
                .ParentKeyColumn("PersonId")
                .ChildKeyColumn("AgentId")
                .Cascade.All()
                .AsSet();
 }
}

Правила таковы, что если один человек становится агентом другого, то тот становится агентом первого.
Так вот, при добавлении к одному человеку агента в таблице появляется подобная запись:
PersonId AgentId
1 2

В коде будет примерно так:
var person = new Person(1);
var agent = new Person(2);

person.AddAgent(agent);

// ...
// больше агентов не было добавлено никому
// ...

// нужно чтобы было так (после сохранения в базу):
var person1 = personRepository.GetById(1);
var person2 = personRepository.GetById(2);


Что нужно сделать с маппингом, чтобы выполнялось такое условие:
person1.AgentsCount == person2.AgentsCount == 1?

Спасибо.
9 мар 11, 18:50    [10345628]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить