2012-03-15 17 views
8

Empecé a aprender ASP.NET MVC, y en este momento de estudio quiero crear un blog simple. Decidí usar ASP.NET MVC y ORM Entity Framework. ¿Probablemente tienes algunos enlaces útiles sobre este tema? Intenté comenzar creando código Modelo primero. tengo 3 clases Publicación, Usuario (El usuario puede ser administrador), Comentarios.¿Cómo utilizo EF para crear automáticamente una base de datos y un repositorio en ASP.NET MVC?

Necesito ayuda para establecer las relaciones entre los modelos de la base de datos. Tengo un código como este en este momento:

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; } 
} 

Estos son mis clases para crear tablas de la base, pero no estoy seguro de cómo hacer que las relaciones como muchos-a-uno. ¿Es correcto hacer una lista de comentarios para publicar o simplemente escribir int CommentID? Nunca utilicé una base de datos muy profunda, solo vi algunas lecciones. ¿Alguien puede aconsejar cómo hacer repositorio o corregir mi código de modelo? ¡Muchas gracias!

+0

¿Has leído el código de los primeros tutoriales? –

+1

+1 - Bienvenido a StackOverflow: o) – Andrew

+0

Gracias Andrew! – BeginerDummy

Respuesta

4

Existen muchos buenos tutoriales sobre cómo hacer esto. Éste, por ejemplo:

http://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/creating-an-entity-framework-data-model-for-an-asp-net-mvc-application

Para responder a algunas de sus preguntas, sí, el nombre CommentId es correcto; cada clase de EF que desee almacenar en la base de datos debe tener un campo llamado Id o un campo llamado MyClassId (donde "MyClass" es el nombre de su clase). Descubrí que este último te hace la vida más fácil, especialmente cuando haces uniones.

A menos que tenga algunas relaciones que EF no pueda resolver automáticamente, no tiene que especificar las relaciones usted mismo: EF detectará automáticamente la relación correcta para usted. No veo nada en tu código que EF no pueda manejar automáticamente.

Una cosa que tendrá que hacer es hacer que los campos List<Post> y List<Comment> sean virtuales; de esa forma, EF puede proporcionar relaciones respaldadas por una base de datos.

Buena suerte.

+0

HI otra vez Ethan! Ya he criticado este tutorial pero no todos. – BeginerDummy

+0

Además de los contenedores y las identificaciones que he establecido. ¿Encontró algo erróneo o probablemente tenga algunos consejos correctos? ¿Puedo comenzar a crear una base de datos con el servidor de base de datos SQL? ¿Y qué hay del repositorio? He escrito solo 3 métodos que devuelven una colección de cada uno clases – BeginerDummy

Cuestiones relacionadas