EF Premier Code, L'instruction INSERT en conflit avec la contrainte de CLÉ ÉTRANGÈRE

Lorsque j'essaie d'insérer un enregistrement dans la base de données, j'obtiens ce message d'erreur:

L'instruction INSERT en conflit avec la contrainte de CLÉ ÉTRANGÈRE
"FK_dbo.Order_dbo.AspNetUsers_UserId". Le conflit s'est produit dans
base de données "Test", la table "dbo.AspNetUsers", la colonne "Id". L'
la déclaration a été résilié.

Avertissement: je sais que cette question a été posée avant (ici, ici et ici), mais aucune des réponses m'a aidé à réparer cette erreur que je reçois.

Voici les modèles:

[Table("Order")]
public class Order
{
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity), Key]
    public int Id { get; set; }

    [Required]
    public string UserId { get; set; }      

    public virtual List<OrderDetails> OrderDetails { get; set; }

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

[Table("OrderDetails")]
public class OrderDetails
{
    [DatabaseGeneratedAttribute(DatabaseGeneratedOption.Identity), Key]
    public int Id { get; set; }

    [Required]
    public int OrderId { get; set; }

    [ForeignKey("OrderId")]
    public virtual Order Order { get; set; }
}

public class ApplicationUser : IdentityUser
{
    [MaxLength(15)]
    public string FirstName { get; set; }

    [MaxLength(15)]
    public string LastName { get; set; }

    [MaxLength(50)]
    public string EmailAddress { get; set; }

    public virtual List<Order> Orders { get; set; }
}

Code qui insère la nouvelle Order:

public OrderDetails Add(dynamic addOrderDetails, string userId)
{
    if (addOrderDetails.OrderId == null)
    {
        var order = new Order()
        {
            UserId = userId,
            CreateDate = DateTime.Now,
            Status = OStatus.InProgress,
            Confirmed = (DateTime?)null,
        };

        var newOrder = _dbContext.Orders.Add(order);
        _dbContext.Entry(order).State = EntityState.Added;
        _dbContext.SaveChanges(); //this is where the error msg is being thrown.

        var orderDetails = new OrderDetails()
        {
            OrderId = newOrder.Id,
            ServiceId = addOrderDetails.ServiceId,
            EventStart = start,
            EventEnd = end
        };

        var newOrderDetails = _dbContext.OrderDetails.Add(orderDetails);
        _dbContext.Entry(orderDetails).State = EntityState.Added;
        _dbContext.SaveChanges();
    }

    return null;
}

L'erreur est levée à cette ligne: _dbContext.SaveChanges(); //this is where the error msg is being thrown.

Lors du débogage, je peux voir que UserId = userId, a une valeur.

Donc pourquoi j'obtiens ce message d'erreur?

J'ai toujours fait de la DB en premier, mais il me semble qu'il ne peut pas trouver quelque chose dans ApplicationUsers qui satisfait UserID dans votre nouvelle Commande. Qui, initialement, suggère l'utilisateur n'est pas dans le ApplicationUsers table, mais sur la recherche à votre entité pour que le tableau je ne vois pas où UserID existe même..?
IdentityUser qui remplace le MembershipProvider et la SimpleMembershipProvider contient le nom d'utilisateur par défaut, et un peu plus de champs. asp.net-identity ajouté le tag de la poste.

OriginalL'auteur Quoter | 2014-02-19