Спасибо, такой код работает, но @Ruard van Elburg упомянул довольно интересную идею - не использовать ApplicationUser в других сущностях. Хотя я до сих пор не понимаю, как это сделать.

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

public class ApplicationUser : IdentityUser {
    // some custom fields
}

public class IdentityContext : IdentityDbContext<ApplicationUser> {
   //...
}

Также у меня есть некоторые другие объекты, подобные этому

public class Comment{
   public int Id {get;set;}
   public string Message{get;set;}
   public DateTime Time{get;set;}
}

которые используются моим другим контекстом

public class MyContext :DbContext {
   public DbSet<Comment> Comments { get; set; }
   //... other DbSets
}

Вопрос. Я хочу, чтобы моя сущность Comment имела свойство author, поэтому у меня будет что-то вроде

public class Comment{
   public int Id {get;set;}
   public string Message{get;set;}
   public DateTime Time{get;set;}
   public virtual ApplicationUser Author {get;set;}
}

но ApplicationUser находится в другом контексте, хотя и в одной и той же БД. Бьюсь об заклад, это невозможно.

Как правильно это реализовать? Должен ли я переместить DbSets из MyContext в IdentityContext, чтобы я мог свободно использовать такой код

public virtual ApplicationUser Author {get;set;}

или я должен оставить это в другом контексте, но добавить что-то вроде

public string AuthorId {get;set}

и сделать некоторые обходные пути, чтобы получить информацию об авторе из другого контекста каждый раз, когда мне это нужно? Или что-то другое?

Спасибо

редактировать

Хорошо, я закончил с чем-то вроде этого:

public class ApplicationUser : IdentityUser {
        public virtual UserProfile UserProfile { get; set; }
}

public class UserProfile {
        [Key, ForeignKey("ApplicationUser")]
        public string Id { get; set; }
        //... custom fields
        public virtual ApplicationUser ApplicationUser { get; set; }

}

public class IdentityContext : IdentityDbContext<ApplicationUser> {
        //...
        public DbSet<UserProfile> UserProfiles { get; set; }
 }

Но как мне реализовать ссылку на комментарий автора? Как это? Так что это не будет связано через отношения EF, и я просто сам заполнил UserProfileId где-нибудь в коде?

public class Comment{
   public int Id {get;set;}
   public string UserProfileId{get;set;}
}

Это правильный способ сделать?

Ответы на вопрос(2)

Ваш ответ на вопрос