人我今天有一段时间试图让这个工作。我认为我错过了导航属性。实体框架:导航属性 - 代码优先
我的控制器。当我把一个断点在富= 5,我期待在当地的观察窗口,“listOfComments”有,即使我的数据库中有列出的信息(见下文)
public ActionResult CommentsList()
{
var post = _db.GetPost(5);
List<Comment> listOfComments = post.Comments.ToList();
var foo = 5;
return View(post);
}
的getPost方法零个元素
public Post GetPost(int? postId)
{
var context = DataContext;
var post = context.Posts.FirstOrDefault(x => x.Id == postId);
if (post == null)
{
return new Post();
}
return post;
}
评论类
public class Comment
{
public int Id { get; set; }
[Required]
public DateTime Date { get; set; }
[Required]
public string Name { get; set; }
[Required]
public string Email { get; set; }
[Required]
public string Body { get; set; }
//Navigational
public Post Post { get; set; }
}
Post类
public class Post
{
public Post()
{
Comments = new HashSet<Comment>();
Tags = new HashSet<Tag>();
}
public int Id { get; set; }
[Required]
public string Title { get; set; }
[Required]
public DateTime Date { get; set; }
[Required]
public string Body { get; set; }
//Navigational
public ICollection<Comment> Comments { get; set; }
public ICollection<Tag> Tags { get; set; }
}
我的DbContext类
public class HundredBlog: DbContext
{
public HundredBlog() : base("HundredBlog") { }
public DbSet<Post> Posts { get; set; }
public DbSet<Comment> Comments { get; set; }
public DbSet<Administrator> Administrators { get; set; }
public DbSet<Tag> Tags { get; set; }
}
数据库表, “意见” 有以下栏目:
-Id
-Date
-Name
-Email
-Body
-Post_Id
数据库表, “帖子” 有以下栏目:
-Id
-Title
-Date
-Body
就像一个例子,我的数据库填充了评论列就好了,它添加了正确的Post_Id引用主键和所有。我有同样的问题与标签表,但即使是有它自己的参考表:
数据库表,“TagPosts”有以下栏目:
-TagId
-PostId
迷路了,请帮忙!
我没有看到GetPost – Stilgar 2014-09-12 18:56:12
的代码刚刚更新以反映GetPost,我不认为这是一个问题,但应该有所帮助。 – Spets 2014-09-12 19:19:55