2009-06-10 257 views
0

我有2個實體 - ClassroomSection,我需要幫助NHibernate映射。 A Classroom收集了Sections。而Section有一個參考返回給它的主人ClassroomNHiberate映射問題

在代碼側:

public class Classroom 
{ 
    public int Id { get; set; }   
    public ISet<Section> Sections { get; set; } 
} 

public class Section 
{ 
    public int Id { get; set; } 
    public Classroom Classroom { get; set; } 
} 

在數據庫方面:

CREATE TABLE Classroom (
    ClassroomID int 
) 

CREATE TABLE ClassroomSection (
    ClassroomID int, 
    SectionID int, 
    IsActive bit 
) 

CREATE TABLE Section (
    SectionID 
) 

如上所見,儘管這是一個一個一對多映射,有一個第三映射表ClassroomSection。移動此映射表有一些自己的字段,如IsActive。我不想在我的代碼中爲ClassroomSection創建實體,因爲它沒有任何域邏輯。但我確實想訪問此表中的字段。任何幫助雙向映射表示讚賞。

謝謝!

回答

0

聽起來像ClassroomSection是一個值對象而不是實體,是正確的嗎?

+0

我不認爲ClassroomSection是什麼。它只是Classroom和Section之間的映射表。 – 2009-06-10 18:00:24

0

發表您希望能夠訪問IsActive的一些示例代碼。

Ayende的最新信息可能給一些提示,你想實現什麼:http://ayende.com/Blog/archive/2009/06/10/nhibernate-ndash-query-only-properties.aspx

+0

你問一個很好的問題。我不知道爲什麼我以前沒有考慮過這個問題。我應該如何訪問IsActive?我可以讓它住在Section實體中。然後,我可以在Section映射中對ClassroomSection執行。但科室本身有一個IsActive領域。看起來我畢竟可能必須創建一個ClassroomSection實體。我不認爲有這個問題。 – 2009-06-12 15:17:17