Скажите, что у меня есть таблица очереди и таблица Job. В таблице Работа есть столбец внешнего ключа QueueId для таблицы очереди, т.е.Компонент NHibernate с отношением «один ко многим» от родителя
< Queue.Id - Job.QueueId
Использование Fluent NHibernate это довольно просто сопоставить это к свойство в классе очереди, т.е.
/* 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=?]"}
Любая идея относительно того, что я делаю неправильно .. .
спасибо за внимание – zcrar70