2009-08-06 36 views
0

說我有一個隊列表和一個作業表。在工作表中有一個外鍵列QueueId的隊列表,即NHibernate組件與父從一對多關係

Queue.Id < - Job.QueueId

使用功能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 2011-06-16 17:03:33