挑战选择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; }
}
在阅读索引页面时,我希望菜单视图将后期视图呈现为链接,当点击链接时,它应该指向帖子详细信息。
答案 0 :(得分:0)
问题是您输入的Menu.Posts
为List<Posts>
。为了管理关系,EF需要输入ICollection<Posts>
。如果您使用List<Posts
,EF将完全忽略它。它不会在数据库中创建关系,也不会在相关实体中填充属性,甚至不会添加延迟加载逻辑以便稍后提取它们。
此外,FWIW,您不应将您的类(永远)或属性(除非它们是一个集合)命名为复数。例如,Posts
应为Post
,因为Post
的实例只是一件事,而不是很多。同样,使用Menus
属性,它只包含一个菜单,而不是多个菜单。