Comment résoudre l’erreur «La multiplicité n’est pas valide dans le rôle»?

J’ai le modèle suivant:

public class Retailer : Entity { public ssortingng Name { get; set; } public ssortingng Address { get; set; } public virtual ICollection Products { get; set; } public virtual ICollection Customers { get; set; } } public class Product : Entity { public ssortingng Name { get; set; } public ssortingng Description { get; set; } public ssortingng ECommerceUrl { get; set; } public ssortingng ImageUrl { get; set; } public Retailer Retailer { get; set; } public ICollection Categories { get; set; } } 

J’essaie de définir une relation de 1 à (0 ou plus) dans laquelle un détaillant peut avoir 0 ou plusieurs produits avec les éléments suivants:

 modelBuilder.Entity() .HasRequired(r => r.Retailer) .WithMany(p => p.Products) .HasForeignKey(p => p.Id); // Id is defined in the base class 

Je reçois l’erreur

Product_Retailer_Source:: la multiplicité n’est pas valide dans le rôle ‘Product_Retailer_Source’ dans la relation ‘Product_Retailer’. Étant donné que le rôle dépendant fait référence aux propriétés de clé, la limite supérieure de la multiplicité du rôle dépendant doit être «1».

Quel est le problème avec la façon dont je définis la relation? Comment puis-je réparer cela?

Essaye ça

 public class Product : Entity { public Retailer Retailer { get; set; } public int RetailerId { get; set; } } 

Avec cette configuration (vous n’avez pas défini de clé étrangère pour stocker le RetailerId par rapport au produit)

 modelBuilder.Entity() .HasRequired(r => r.Retailer) .WithMany(p => p.Products) .HasForeignKey(p => p.RetailerId);