如何在ASP.NET MVC中使用EF自动创建数据库和仓库?

8
我已经开始学习ASP.NET MVC,现在我想创建一个简单的博客网站。我决定使用ASP.NET MVC和ORM Entity Framework。也许你有一些关于这个主题的有用链接?
我试图从创建模型代码开始。我有三个类Post、User(用户可以是管理员)、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)创建评论(Comment),是将评论(Comment)列表(List of Comments)与帖子(Post)关联,还是只需编写评论(Comment)ID(int CommentID)即可?我从未深入使用过数据库,只是看了几节课。请问有人能够建议我如何制作存储库或更正我的模型代码吗? 非常感谢!


你读过Code First教程了吗? - Daniel A. White
2个回答

4
有很多关于如何做这个的好教程。例如这一个:http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application 回答一些你的问题,是的,名称 CommentId 是正确的;每个要存储在数据库中的 EF 类都必须有一个名为 Id 或名为 MyClassId(其中“MyClass”是你的类名称)的字段。我发现后者会让你的生活更容易,特别是在进行关联操作时。
除非你有一些 EF 无法自动检测到的关系,否则你不必手动指定关系:EF 会自动为你检测到正确的关系。在你的代码中,我没有看到 EF 无法自动处理的任何内容。
你需要做的一件事是使List<Post>List<Comment>字段成为虚拟的;这样 EF 就可以提供基于数据库的关系。
祝你好运。

嗨,Ethan!我已经查看了这个教程,但不是全部。 - BeginerDummy
除了我已经设置的容器和 ID 外,你是否发现了什么问题或者可能有一些正确的建议?我可以使用 SQL 数据库服务器开始创建数据库吗?那么仓库呢?我只编写了三个方法,它们分别返回每个类的集合。 - BeginerDummy

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接