MVC4 EF DB First - 如何访问模型外键(ICollection)

时间:2013-02-25 02:12:30

标签: entity-framework asp.net-mvc-4 model foreign-key-relationship icollection

我创建了一个包含外键的表的MSSQL数据库。然后我创建了一个新的MVC 4 Web应用程序。我使用Entity Framework生成我的控制器/模型/视图。在模型中,使用外键链接的表显示为ICollections。例如:

 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]&lt; - 给出错误。

2 个答案:

答案 0 :(得分:0)

ICollection<T>就像IList<T>T[]一样,因此您必须首先获取集合中的元素,然后引用其属性。 e.g。

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

答案 1 :(得分:0)

这比我预期的要简单。我只需要使用foreach循环:

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