2011-09-16 146 views
0

这是一个关于模型,ASP.NET MVC 3和关系的问题。我使用的是代码优先的方法。ASP.NET MVC 3和一对多关系

设想一个用户的这个简单的典型场景,其博客文章:

public class User 
{ 
    public virtual int UserId { get; set; } 
    public virtual string Nickname { get; set; } 
    public virtual List<Post> Posts { get; set; } 
} 

public class Post 
{ 
    public virtual int PostId { get; set; } 
    public virtual string BlogText { get; set; } 
} 

我说得很简单。

好吧。当我使用实体框架使用带有读/写操作和视图的控制器创建控制器时,不考虑邮件集合。它被忽略。所以,我无法让这种关系发挥作用。

如果代替收集,存在单个对象(例如公共虚拟字符串电子邮件),则它正常工作。

我问自己,你:

  • 为什么
  • 我如何把到集合的引用在我的模型?

它应该是一个简单的任务,我真的不明白为什么它不起作用。

谢谢。

回答

0

POCO看起来应该像下面有一个一对多的关系:

public class Post 
{ 
    public int Id { get; set; } 
    public string BlogText { get; set; } 

    public virtual User User { get; set; } 
} 

public class User 
{ 
    public int Id { get; set; } 
    public string Nickname { get; set; } 

    public virtual ICollection<Post> Posts { get; set; } 
} 
+0

谢谢您的回答。但是,实际上,尝试生成控制器(右键单击Controllers文件夹=>添加控制器=>脚手架选项:'具有读/写操作的控制器...'=>模型类:用户=>数据上下文类:新数据上下文)。它不起作用。它只为用户创建上下文方法。帖子不存在。 – daliz

+0

您可能希望为'PostController'创建一个单独的控制器,因为这是一个不同的实体。 –

+0

如果我创建一个不同的控制器,我想不会有实体框架的自动脚手架功能。 – daliz