2013-08-21 44 views
0

在研究ASP.NET MVC是否適合我的下一個網站時,我遇到了一個煩人的問題。與ASP.NET MVC的過度複雜的多對多關係

我從第2版開始就關注ASP.NET MVC,它變得更好了。例如,現在使用代碼優先進行實體框架中的遷移相當容易,而這往往是一件麻煩事。
這意味着我現在可以在半小時內首先運行數據庫遷移和代碼(因爲我通常不記得涉及的步驟,我必須遵循我寫的指南)。

現在,我很早就在數據庫中獲得了實體(例如標籤和帖子)之間的多對多關係,而且我發現通過MVC框架獲得這種關係非常複雜! Example from asp.netExample from mikesdotnetting

它涉及特殊的方法來檢索不是框架固有部分的關係數據。

治療多對多關係真的沒有更好/更簡單的方法嗎?

回答

2

你應該虛擬鍵單詞添加到許多端口

public class Post 
{ 
    [Key] 
    public int ID { get; set; } 
    public string Title { get; set; } 
    public virtual ICollection<Tag> Tags {get;set;} 
} 

public class Tag 
{ 
    public int ID { get; set; } 
    public string Name { get; set; } 
    public virtual ICollection<Post> Posts {get;set;} 
} 
+0

是。也許我必須澄清,這不是導致我出現問題的部分。我的問題是通過控制器關聯這種關係,根據我所包含的鏈接,您需要創建一個特殊功能,將兩者結合起來(發佈和標籤)。 – kasperhj

+1

你應該可以通過'Post.Tags'和'Tag.Posts'獲得鏈接的集合。如果這些集合是空的,則可能需要使用PostsIQuerriable.Include(x => x.Tags)'(和vica)來引導數據。如果在視圖中訪問此數據時出現無限循環錯誤,則可能需要[ScriptIgnore]標記。 – Sam