Chave estrangeira para Microsoft.AspNet.Identity.EntityFramework.IdentityUser?

Eu estou no VS 2013 e acabei de criar um aplicativo MVC.

Estou criando um objeto que pretendo ter uma chave estrangeira para a tabela AspNetUsers no banco de dados resultante. O projeto tem um ApplicationUser (derivado de IdentityUser) que se parece com uma correspondência de coluna de propriedade com a tabela AspNetUsers.

Como declaramos apropriadamente uma chave estrangeira para isso?

public MyObject
{
   public string UserId { get; set; }

   [ForeignKey("UserId")]
   public ApplicationUser User { get; set;}

   // other properties
}

Agora, modifico o ApplicationUser para ter uma coleção de MyObjects:

public ApplicationUser : IdentityUser
{
     public virtual ICollection<MyObject> MyObjects { get; set; }    
}

Isto parece ser como fazer um-para-muitos no EF Code First. No entanto, quando atualizo o banco de dados, estou recebendo os erros que dizem que os membros da Identidade (IdentityUserLogin, IdentityUserRole, etc.) não possuem chaves definidas. Talvez essas aulas não tenham sido destinadas a participar das Migrações do EF Code First?

Eu poderia ir "para trás" e adicionar a chave estrangeira por meio de instruções SQL, mas se eu quisesse atualizar novamente do Code First, eu poderia obter erros (que o banco de dados não corresponde atualmente à migração mais antiga ou algo parecido).

Como nós, de forma correta, a foreign-key referenciamos essas tabelas de associação?

Eu também tentei criar uma classe AspNetUser com propriedades correspondentes da tabela AspNetUsers. Em vez de "public ApplicationUser" na classe Client, declarei "public AspNetUser". Isso resultou em uma falha de migração - "A migração automática não foi aplicada porque resultaria em perda de dados".

Então o que fazer?

questionAnswers(5)

yourAnswerToTheQuestion