ASP.NET Identity - Как отобразить отношения один-к-одному или ноль?

Как я могу сопоставить следующие отношения, используя Entity Framework Code First?

Отношение - Автор является основным, а ApplicationUser является зависимым:

введите описание изображения здесь

ApplicationUser является производным классом от IdentityUser. Авторы могут быть созданы в первую очередь, чем пользователи, поэтому они являются главными в отношениях. Каждый пользователь должен быть связан с автором, но автор может быть связан без ApplicationUser. Я пытался сделать это с помощью свободного API и аннотаций, но я не могу сказать, что первичный ключ ApplicationUser - это внешний ключ для Author. Большое спасибо!

Модели:

 public class Author
{
    [Key]
    public string AuthorId { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string Email { get; set; }
    public List<string> AditionalEmails { get; set; }
    public virtual ICollection<PublicationData> Publication { get; set; }

    //User is optional.
    public virtual ApplicationUser User { get; set; }
}



    public partial class ApplicationUser : IdentityUser
{

    public string FirstName { get; set; }
    public string LastName { get; set; }

    public string Affiliation { get; set; }
    public string Position { get; set; }
    public DateTime CreatedOn { get; set; }
    public bool Deleted { get; set; }
    public int CountryCode { get; set; }
    public virtual Country Country { get; set; }
    public virtual ICollection<PublicationData> Publications { get; set; }
    public virtual ICollection<Request> Requests { get; set; }

    //Author is required
    public virtual Author Author { get; set; }
}

0 ответов

Другие вопросы по тегам