asp.net mvc tworzenie optymalnych encji code first EF

0

Cześć

Zacząłem się zastanawiać czy tak naprawdę potrzebuję tworzenie relacji w bazie danych przy użyciu encji w podejściu code first.

Tutaj przykład z innej stronki:

 

public class Student
{
    public Student() { }

    public int StudentId { get; set; }
    public string StudentName { get; set; }

        public int StdandardRefId { get; set; }
        
    [ForeignKey("StandardRefId")]
    public virtual Standard Standard { get; set; }
}
       
public class Standard
{
    public Standard()
    {
        StudentsList = new List<Student>();
    }
    public int StandardId { get; set; }
    public string Description { get; set; }

    public virtual ICollection<Student> Students { get; set; }
}

Nie mógłbym stworzyć takich encji ?

 

public class Student
{
    public int StudentId { get; set; }
    public string StudentName { get; set; }

   //poprawione
   public int StdandardRefId { get; set; }
}
       
public class Standard
{
    public int StandardId { get; set; }
    public string Description { get; set; }
}

Wtedy wyciągać dane zupełnie oddzielnie i zapisywać go do jakiegoś ViewModelu który mógłby wyglądać tak:

 
       
public class StandardViewModel
{
    public int StandardId { get; set; }
    public string Description { get; set; }

    public List<Student> Students { get; set; }
}

Istnieją jakieś większe plusy pierwszego podejścia ?

1

Nie rozumiem o co Tobie chodzi. Tu chodzi o to, że budowany jest związek jeden do wielu. W Twoim ViewModelu natomiast ładowałbym wszystkich studentów do listy, bo wg dwóch encji nie ma między nimi związku.

0
pred napisał(a):

Istnieją jakieś większe plusy pierwszego podejścia ?

Tak.
W drugim podejściu nie ma żadnego związku pomiędzy Student a Standard, to jak masz zamiar zrobić ViewModel, który będzie zawierał listę studentów powiązanych z danym standardem?

0

Zapomniałem o pewnym "szczególe". Jest już dodane w miejsce "poprawione". Relacja wydaj się teraz dość prosta.

1 użytkowników online, w tym zalogowanych: 0, gości: 1