我已经开始学习ASP.NET MVC了,在这个学习的时候我想创建一个简单的博客网站。我决定使用ASP.NET MVC和ORM实体框架。可能你有关于这个主题的一些有用的链接? 我试着先从创建模型代码开始。 我有3个类Post,User(User can admin),Comments。
我需要帮助才能建立数据库模型之间的关系。我现在有这样的代码:
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }
public List<Comment> Comments { get; set; }
public DateTime PublishDate { get; set; }
}
public class User
{
public readonly bool IsAdmin { get; set; }
public string FirstName { get; set; }
public string SecondName { get; set; }
public string Email { get; set; }
public string Password { get; set; }
public DateTime DateOfBirthday { get; set; }
public string Country { get; set; }
public string City { get; set; }
public List<Post> Posts { get; set; }
public List<Comment> Comments { get; set; }
}
public class Comment
{
public int CommentId { get; set; }
public string UserName { get; set; }
public string Content { get; set; }
public DateTime PublishDate { get; set; }
}
这些是我创建数据库表的类,但我不确定如何使关系像多对一一样。 为Post做一个注释列表或者只是写一个注释ID是正确的吗?我从来没有使用过很深的数据库,只看了几课。有人可以建议如何制作存储库或更正我的模型代码? 非常感谢你!
答案 0 :(得分:4)
有很多关于如何做到这一点的好教程。这个,例如:
要回答你的一些问题,是的,名称CommentId是正确的;您希望存储在数据库中的每个EF类都必须具有名为Id的字段或名为MyClassId的字段(其中“MyClass”是您的类的名称)。我发现后者让你的生活更轻松,特别是在加入时。
除非您有一些EF无法自动判断的关系,否则您不必自己指定关系:EF会自动为您检测正确的关系。我的代码中没有看到EF无法自动处理的任何内容。
您需要做的一件事是将List<Post>
和List<Comment>
字段设为虚拟;这样,EF可以提供数据库支持的关系。
答案 1 :(得分:2)
我很喜欢Building an MVC 3 App with Code First and Entity Framework 4.1 教程。包含我发现非常容易理解的视频。