codegeekalpha Ответов: 1

Entity framework отношения один к одному


У меня есть таблица клиентов и тип членства

Существует связь один к одному между клиентами и таблицей membershiptype
таблица customer имеет внешний ключ таблицы membershiptype.

У меня есть код, который довольно запутан, но отлично работает для создания внешнего ключа в таблице customers.

Это класс для таблицы клиентов

public class Customer
    {
        public int Id { get; set; }
        
        [Required(ErrorMessage="Please Enter Customer's name")]
        [StringLength(255)]
        public string Name { get; set; }

        public bool IsSubscribedToNewsLetter { get; set; }
              
        public MembershipType MembershipType { get; set; }

        [Display(Name = "Date of Birth")]
        [Min18YearsIfAMember]
        public DateTime? Birthdate { get; set; }
       
        
        [Display(Name="MembershipType")]
        public byte MembershipTypeID { get; set; }
        
    }
}


А класс для таблицы membershiptype-это

public class MembershipType
    {
        public byte Id { get; set; }

        public string Name { get; set; }
        public short SignUpFee { get; set; }
        public byte DurationInMonths { get; set; }
        public byte DiscountRate { get; set; }

        public static readonly byte unknown = 0;
        public static readonly byte PayAsYouGo = 1;
    }
}


Что я уже пробовал:

Это большинство tutoirals в интернете для отношений один к одному используют virtual и не используют вышеупомянутую stretegy для создания ключа forign

таблица students содержит ключ для таблицы studentaccount. и пользуется виртуальным.
public class Student

   {

      public int Id { get; set; }
      public string Name { get; set; }

      public int Age { get; set; }

      public virtual StudentAccount StudentAccount { get; set; }


   }


Таблица счетов студентов

public class StudentAccount
    {
        public int Id { get; set; }
 
        public string Name { get; set; }
 
        public int Amount { get; set; }
 
        [Required]
        public virtual Student Student { get; set; }
 
    }


В чем разница между двумя методами для этих отношений один к одному? и как это работает при отображении внешнего ключа.

1 Ответов

Рейтинг:
0

Ramesh Kumar Barik

Пожалуйста, обратитесь по этой ссылке. Это может вам помочь.

Настройка Отношения Один К Одному В Entity Framework С Использованием Подхода Code First[^]


codegeekalpha

Я думаю, что вопрос, который я задал.. ты не понял...