2011-11-19 31 views
0

我有一個名爲Forum的類和另一個名爲Thread的類。我應該如何將模型鏈接到MVC3中的另一個模型?

Thread包含一個屬性,它將其鏈接到一個Forum。如果該屬性是某種ID的(不論是GUID,int或其他):

public class Thread 
{ 
    public GUID ID { get; set; } 
    public GUID ForumID {get; set; } 
} 

還是應類型的論壇:

public class Thread 
{ 
    public GUID ID { get; set; } 
    public Forum ParentForum { get; set; } 
} 

什麼是做的最好的方式?它應該是前者,因爲它會顯示在數據庫中?

PS:我使用的是實體框架

+0

你在使用Entity Frameworks嗎? – Dallas

+0

是的。對不起,我應該在問題中提出這個問題。 –

回答

2

如果你想設計第一:一個Thread不能沒有Forum存在。因此,我建議你使用:

public class Thread 
{ 
    public GUID ID { get; set; } 

    [ForeignKey("ForumId")] 
    public Forum Forum { get; set; } 

    public Guid ForumId {get; set; } 
} 

(我使用的代碼首先假設你的?)

我覺得上面會的工作,我沒有得到VS 2010在我面前這裏。

+0

但是有必要同時擁有'ForumID'和'Forum'嗎?它不應該是一個或另一個? –

+0

@Piers請參閱[我的答案](http://stackoverflow.com/questions/8194146/how-should-i-link-a-model-to-another-model-in-mvc3/8194245#8194245) – Eranga

2

如果按如下方式公開標量屬性和導航屬性會更好。

public class Thread 
{ 
    public GUID ID { get; set; } 

    public GUID ForumID { get; set; } 

    public virtual Forum Forum { get; set; } 
} 

如果要創建一個Thread,你只知道ForumID您可以輕鬆地創建線程,如果你暴露ForumID。否則,您必須從數據庫加載相關對象Forum或創建一個虛擬對象並將其附加到ObjectContext/DbContext

當您需要論壇數據對線程對象進行一些處理時,公開導航屬性將幫助您。

相關問題