实体框架一对多关系,但对象引用未设置为对象的实例

1 asp.net-mvc-3 entity-framework-5

我是初学者,我有 3 个实体:会员、帖子、评论。一个会员有很多帖子,一个帖子有很多评论。

   public class Member
   {
            [Key]
            public int Id{get;set;}    
            public string Name{get;set;}   
            public virtual ICollection<Post> Posts { get; set; }    
   }
   public class Post
   {            
       [Key]
       public int PostId{get;set;}        
       public string Subject{get;set;}        
       public int AccountId{get;set;}             
       public virtual Member member{get;set;}        
       public ICollection<Comment> Comments { get; set; }
   }

   public class Comment
   {
      [Key]
       public int CommentId{get;set;}    
       public string Body{get;set;}
       public int PostId { get; set; }
       public virtual Post post { get; set; }
   }
Run Code Online (Sandbox Code Playgroud)

这是在我的上下文中定义的关系:

           modelBuilder.Entity<Post>()
                .HasRequired(c=>c.member)
                .WithMany(t=>t.Posts)
                .HasForeignKey(d=>d.AccountId);

           modelBuilder.Entity<Comment>()
               .HasRequired(c => c.post)
               .WithMany(t => t.Comments);
               .HasForeignKey(d=>d.AccountId);
Run Code Online (Sandbox Code Playgroud)

我使用asp.net mvc。表和关系都可以,但是在“详细信息”视图中的“Post”控制器中:

 @model sishan.Models.Friend
  .
  .
  .  

 @foreach (var item in Model.Comments)
   {
      <p> @item.Body</p>
   }
Run Code Online (Sandbox Code Playgroud)

我收到此错误:未将对象引用设置为对象的实例。

我没有任何语法错误。

请帮我。对不起我的英语不好。

kar*_*una 5

您是否启用了延迟加载?如果没有,那么您应该手动包含导航属性:http://msdn.microsoft.com/en-us/data/jj574232.aspx