Компонент NHibernate с отношением один-ко-многим от родителя - PullRequest
0 голосов
/ 07 августа 2009

Скажем, у меня есть таблица очередей и таблица заданий. В таблице заданий есть столбец внешнего ключа QueueId для таблицы очереди, т.е.

Queue.Id <- Job.QueueId </p>

Используя Fluent NHibernate, довольно просто отобразить это свойство в классе Queue, т.е.

/* QueueMap */
HasMany(x => x.Jobs)
   .KeyColumnNames.Add("QueueId");

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

public class Queue 
{
    public Group Group { get; set; }
}

public class Group
{
    public IList<Job> Jobs { get; private set; }
}

Затем мне нужно отобразить это, используя Компонент, т.е.

/* QueueMap */

Component(
    x => x.Group,
    y => y.HasMany(x => x.Jobs).KeyColumnNames.Add("QueueId")
);

Когда я делаю это, я получаю следующее:

{"could not initialize a collection: 
[Queue.Group.Jobs#832fc413-c282-48e8-8cb6-d2a70b0b8de4]
[SQL: SELECT values0_.QueueId as QueueId1_, values0_.Id as Id1_, values0_.Id 
 as Id16_0_, (....) FROM dbo.Jobs values0_ WHERE values0_.QueueId=?]"}

Любая идея о том, что я делаю неправильно ...

1 Ответ

1 голос
/ 11 августа 2009

решаемая. Это было вызвано проблемой сопоставления в JobMap.

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