Beg*_*mmy 8 c# database asp.net asp.net-mvc entity-framework
我已经开始学习ASP.NET MVC了,在这个学习的时候我想创建一个简单的博客网站.我决定使用ASP.NET MVC和ORM实体框架.可能你有关于这个主题的一些有用的链接?我试着先从创建模型代码开始.我有3个班级帖子,用户(用户可以是管理员),评论.
请帮助我建立数据库模型之间的关系.我现在有这样的代码:
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; }
}
Run Code Online (Sandbox Code Playgroud)
这些是我创建数据库表的类,但我不确定如何使关系像多对一一样.为Post做一个注释列表或者只是写一个注释ID是正确的吗?我从来没有使用过很深的数据库,只看了几课.有人可以建议如何制作存储库或更正我的模型代码?非常感谢你!
有很多关于如何执行此操作的优秀教程。以这个为例:
回答你的一些问题,是的,CommentId这个名字是正确的;您想要存储在数据库中的每个 EF 类都必须有一个名为 Id 的字段或一个名为 MyClassId 的字段(其中“MyClass”是您的类的名称)。我发现后者让你的生活更轻松,尤其是在进行连接时。
除非您有一些 EF 无法自动找出的关系,否则您不必自己指定这些关系:EF 将自动为您检测正确的关系。我在您的代码中没有看到 EF 无法自动处理的任何内容。
您必须做的一件事是将List<Post>
和List<Comment>
字段设为虚拟;这样 EF 就可以提供数据库支持的关系。
祝你好运。