C# Entity Freamework Code First - właściwości virtual

0

Póki co mam 2 klasy.

 
public class User
    {
        public int UserID { get; set; }
        public string Login { get; set; }
        public int QuestionID { get; set; }
        public eOptionTypeLogin OptionTypeLogin { get; set; }

        public virtual ICollection<Question> Question { get; set; }
    }

public class Question
    {
        public int QuestionID { get; set; }
        public string Title { get; set; }

        public virtual User User { get; set; }
    }

Mam zrobiona relacje 1 user - wiele pytań. Jednak teraz chciałbym dodać właściowść

public eAnswerToQuestion AnswerToQuestion{ get; set; }
 

i nie wiem właśnie czy mam zrobić nową tabele z polam QuestionID, UserID oraz AnswerToQuestion i do tego jakieś właściwości virtual?

0

Nie do końca wiem czy dobrze zrozumiałem twoje intencje, ale chyba powinieneś zrobić to jako kolejną klasę i powiązać ją z Question tak jak powiązałeś Question z User.

1
  1. Bez sensu trochę podział klas. Po co związek, że jeden użytkownik - wiele pytań. Pytanie samo w sobie jest oddzielnym bytem. Teoretycznie dla dwóch takich samych pytań będziemy mieli dwa różne obiekty jeżeli będą przypisane do konkretnego użytkownika.
  2. Lepszym rozwiązaniem jest przechowywanie klas User (dane usera), Question(tylko dane o pytaniu), Answer (powiązania odpowiedzi z userem).
 
public class Answer
{
      public int AnswerID {get; set;}
      public virtual User SomeUser {get; set;}
      public virtual Question SomeQuestion {get; set;}
}

public class User
{
       //... other properties
       public virtual ICollection<Answer> AnswerCollection {get; set}
}

public class Question
{
       //... other properties
       public virtual ICollection<Answer> AnswerCollection {get; set}
}
0

Dziekowa, czyli dobrze myślałem. tylko zastanawiało mnie czy dało by radę zrobić to w 2 tabelkach.

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