2012-03-15 10 views
8

Zacząłem uczyć się ASP.NET MVC, a na tym etapie nauki chcę stworzyć prosty blog. Zdecydowałem się użyć ASP.NET MVC i ORM Entity Framework. Prawdopodobnie masz jakieś przydatne linki na ten temat? Najpierw próbowałem zacząć od utworzenia kodu modelu. Mam 3 klasy Post, Użytkownik (użytkownik może być administratorem), Komentarze.Jak używać EF do automatycznego tworzenia bazy danych i repozytorium w ASP.NET MVC?

Potrzebuję pomocy w tworzeniu relacji między modelami baz danych. Mam kod jak to teraz:

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

Są to moje klasy do tworzenia tabel baz danych, ale nie jestem pewien, jak uczynić stosunki jak wiele-do-jednego. Czy to poprawnie zrobić listę komentarzy do postu lub po prostu wpisać int CommentID ?? Nigdy nie korzystałem z bazy danych bardzo głęboko, widziałem tylko kilka lekcji. Czy ktoś może doradzić, w jaki sposób utworzyć repozytorium lub poprawić mój kod modelu? Dziękuję bardzo!

+0

Czy przeczytałeś pierwsze tutoriale kodu? –

+1

+1 - witamy w StackOverflow: o) – Andrew

+0

Dziękuję u Andrew! – BeginerDummy

Odpowiedz

4

Istnieje wiele dobrych tutoriali o tym, jak to zrobić. Ten jeden, na przykład:

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

Aby odpowiedzieć na niektóre pytania, tak, nazwa CommentId jest prawidłowa; każda klasa EF, która ma być przechowywana w bazie danych, musi mieć pole o nazwie Id lub pole o nazwie MyClassId (gdzie "MyClass" to nazwa klasy). Odkryłem, że to drugie ułatwia życie, zwłaszcza podczas robienia połączeń.

Jeśli nie masz pewnych związków, których EF nie może dowiedzieć się automatycznie, nie musisz sam określać relacji: EF automatycznie wykryje dla ciebie prawidłową relację. Nie widzę nic w twoim kodzie, że EF nie może obsłużyć automatycznie.

Jedną rzeczą, którą musisz zrobić, to uczynić pola List<Post> i List<Comment> wirtualnymi; w ten sposób EF może dostarczać relacje oparte na bazach danych.

Powodzenia.

+0

Jeszcze raz, Ethan! Już sprawdziłem ten samouczek, ale nie wszystkie. – BeginerDummy

+0

Oprócz tych kontenerów i identyfikatorów, które już ustawiłem. Czy znalazłeś coś złego lub prawdopodobnie masz jakieś prawidłowe rady? Czy mogę zacząć tworzyć bazę danych z serwerem bazy danych SQL? A co z repozytorium? Napisałem tylko 3 metody, które zwracają kolekcja każdej z klas – BeginerDummy

Powiązane problemy