0

我創建了一個包含外鍵的表的MSSQL數據庫。然後我創建了一個新的MVC 4 Web應用程序。我使用Entity Framework來生成我的控制器/模型/視圖。在模型中,使用外鍵鏈接的表格顯示爲ICollections。例如:MVC4 EF DB首先 - 如何訪問模型外鍵(ICollection)

public partial class Test 
{ 

    public Test() 
    { 
     this.Questions = new HashSet<Question>(); 
     this.Users = new HashSet<User>(); 
    } 

    public int testId { get; set; } 
    public string name { get; set; } 
    public string description { get; set; } 
    public Nullable<int> pointValue { get; set; } 
    public Nullable<int> numberOfQuestions { get; set; } 

    public virtual ICollection<Question> Questions { get; set; } 
    public virtual ICollection<User> Users { get; set; } 

    } 
} 

我的問題是我如何能夠訪問存儲在視圖中這些ICollections中的數據? Test.Questions [x] < - 給出錯誤。

+0

澄清,你有'問題'和'用戶'的模型? – 2013-02-25 02:17:32

+0

'((測試)測試).Questions [0] .QuestionType'?它是一個集合,因此在訪問其屬性之前,您將不得不引用一個實例。 – 2013-02-25 02:18:50

回答

0

這比我預想的要簡單。我只需要使用一個foreach循環:

@foreach (var question in item.Questions) 
    { 
     <td>@question.question1</td> 
    } 
0

ICollection<T>就像IList<T>T[],所以你將不得不首先獲取集合中的元素,然後引用它的屬性。例如

Test test = testService.Get(1); 
Question question = test.Questions.FirstOrDefault(); // using System.Linq; 
if (question.quertionType == ....) 
{ 
}