Отношение один к одному с кодом EF 4.1 - PullRequest
0 голосов
/ 10 июня 2011

Мой вопрос похож на этот:

-> Многозначная конфигурация с использованием кода EF 4.1 вначале

В Google есть несколько свободно распространяемых API-решений с переопределением метода «OnModelCreating» и настройкой параметров внешнего ключа вручную. Но я бы предпочел решение с аннотациями данных, если это возможно. Потому что я хотел бы использовать обратные свойства при кодировании. Например, объект TypeA имеет объект TypeB. Поэтому объект TypeB должен иметь свойство ParentTypeA. Пример:

public class User : IUser
{
    [Key(), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserId { get; set; }

    [RegularExpression(@"[A-Za-z0-9_\-\.]{2,32}"), MinLength(2), MaxLength(32)]
    [Required(AllowEmptyStrings = false)]
    public string UserName { get; set; }

   // other props ....
   // ....

    public virtual UserGallery Gallery { get; set; }
}

public class UserGallery : IUserGallery
{
    [Key(), DatabaseGenerated(DatabaseGeneratedOption.Identity)]
    public int UserGalleryId { get; set; }

   // other props ....
   // ....

    public virtual User ParentUser { get; set; }
}

1 Ответ

1 голос
/ 11 июня 2011

Общепринятый способ сделать это в Code First - использовать UserID в качестве первичного ключа объекта UserGallery. Это хорошо, если это истинное отношение один к одному.

public class UserGallery : IUserGallery
{
   [Key]
   public int UserId {get;set;}
   public User User {get;set;}
   etc...
}

Это работало хорошо для меня в прошлом.

...