2012-03-15 50 views
8

我已经开始学习ASP.NET MVC,并且在这个时候学习我想创建简单的博客网站。我决定使用ASP.NET MVC和ORM实体框架。可能你有这个主题的一些有用的链接? 我试着从创建Model代码开始。 我有3班发布,用户(用户可以是管理员),评论。如何使用EF在ASP.NET MVC中自动创建数据库和存储库?

请帮助我建立数据库模型之间的关系。我有这样的代码,现在这一权利:

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创建评论列表还是只写int CommentID?我从来没有用过很深的数据库,只是看了几节课。有人可以建议如何使存储库或更正我的模型代码? 非常感谢!

+0

你有没有看过第一个教程的代码? – 2012-03-15 22:21:25

+1

+1 - 欢迎来到StackOverflow:o) – Andrew 2012-03-15 22:35:13

+0

谢谢你安德鲁! – BeginerDummy 2012-03-15 22:58:28

回答

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可以提供数据库支持的关系。

祝你好运。

+0

HI再次Ethan!我已经啃过本教程,但不是全部。 – BeginerDummy 2012-03-15 22:32:24

+0

除了我已经设置的这些容器和ID之外。你是否发现有什么问题或者你有一些正确的建议?我可以开始用SQL数据库服务器创建数据库吗?我有什么关于仓库?我只写了3个方法返回每一个类的集合 – BeginerDummy 2012-03-15 22:35:26

相关问题