Когда я пытаюсь установить связь «многие-ко-многим» с Fluent API на. Net Core, я получаю сообщение об ошибке: add-migration
:
The property or navigation 'MembreId' cannot be added to the entity type 'Gracci.Models.Achat' because a property or navigation with the same name already exists on entity type 'Gracci.Models.Achat'.
Модель Achat
содержит покупки пользователя
public class Achat
{
public int Id { get; set; }
public int MembreId { get; set; }
public Membre Membre { get; set; }
public int ProduitId { get; set; }
public Produit Produit { get; set; }
public DateTime Date { get; set; }
public int Unite { get; set; }
}
Модель Membre
содержит данные участника
public class Membre
{
public int Id { get; set; }
[Required]
[MaxLength(35)]
public string Nom { get; set; }
[Required]
[MaxLength(35)]
public string Prenom { get; set; }
[Required]
[MaxLength(255)]
public string Email { get; set; }
[Required]
[MaxLength(255)]
public string MotDePasse { get; set; }
[Required]
[DefaultValue(false)]
public bool IsResponsable { get; set; }
[Required]
[DefaultValue(0.0)]
public float Solde { get; set; }
public ICollection<Achat> Achats { get; set; }
}
Модель Produit
содержит товары для продажи
public class Produit
{
public int Id { get; set; }
[Required]
[MaxLength(150)]
public string Name { get; set; }
[Required]
public float Price { get; set; }
[Required]
public int Stock { get; set; }
[Required]
[DefaultValue(true)]
public bool? isActif { get; set; }
public ICollection<Achat> Achats { get; set; }
}
Код для моих отношений между Member
- Purchase
- Product
в GracciDbContext
. Я добавил DbSet<Membre>
, DbSet<Achat>
и DbSet<Produit>
/* FLUENT API ACHAT */
modelBuilder.Entity<Achat>()
.Property(s => s.Unite)
.IsRequired()
.HasDefaultValue(1);
modelBuilder.Entity<Achat>()
.Property(s => s.Date)
.IsRequired()
.HasDefaultValueSql("getdate()");
/* FLUENT API ACHAT - PRODUIT/MEMBRE MANY-TO-MANY */
modelBuilder.Entity<Achat>().HasKey(p => new { p.MembreId, p.ProduitId});*/
modelBuilder.Entity<Achat>()
.HasOne<Produit>(achat => achat.Produit)
.WithMany(prod => prod.Achats)
.HasForeignKey(s => s.ProduitId);
modelBuilder.Entity<Achat>()
.HasOne<Membre>(achat => achat.Membre)
.WithMany(memb => memb.Achats)
.HasForeignKey(s => s.MembreId);
Я использовал Fluent Api для ограничений, но преобразовал это в аннотацию ...