2009-08-06 6 views
0

Скажите, что у меня есть таблица очереди и таблица 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=?]"} 

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

ответ

1

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

+0

спасибо за внимание – zcrar70

Смежные вопросы