从ef关系mvc5中读取数据

时间:2016-06-02 14:57:19

标签: c# asp.net-mvc entity-framework asp.net-mvc-4 razor

挑战选择LINQ到EF的数据。我有两个相关的模型,如Category和Post。

我成功创建了分类模型以及仅分配给一个分类的帖子。

以下是模型:

    public class Menu
    {
        public int MenuId { get; set; }
        public string Title { get; set; }
        public virtual List<Posts> Posts { get; set; }
        public string PostedBy { get; set; }
        public DateTime PostedDate { get; set; }
    }

    public class Posts
    {
        public int PostId { get; set; }
        public string Title { get; set; }

        [UIHint("tinymce_jquery_full"), AllowHtml]
        public string Content { get; set; }
        public string ImageUrl { get; set; }  
        public DateTime PostedDate { get; set; }

        public int MenuId { get; set; }
        public virtual Menu Menus{ get; set; }
    }

在阅读索引页面时,我希望菜单视图将后期视图呈现为链接,当点击链接时,它应该指向帖子详细信息。

1 个答案:

答案 0 :(得分:0)

问题是您输入的Menu.PostsList<Posts>。为了管理关系,EF需要输入ICollection<Posts>。如果您使用List<Posts,EF将完全忽略它。它不会在数据库中创建关系,也不会在相关实体中填充属性,甚至不会添加延迟加载逻辑以便稍后提取它们。

此外,FWIW,您不应将您的类(永远)或属性(除非它们是一个集合)命名为复数。例如,Posts应为Post,因为Post的实例只是一件事,而不是很多。同样,使用Menus属性,它只包含一个菜单,而不是多个菜单。