====== Migrations EF − Problème de double clé étrangère ======
Parfois Entity Framework génère une clé étrangère en double comme dans cet exemple :
CreateTable(
"dbo.Table",
c => new
{
AttributID = c.Int(nullable: false),
DeuxiemeAttributID = c.Int(nullable: false),
Attribut_ID = c.Int(),
})
.PrimaryKey(t => new { t.AttributID, t.DeuxiemeAttributID })
.ForeignKey("dbo.DeuxiemeTable", t => t.Attribut_ID)
.ForeignKey("dbo.DeuxiemeTable", t => t.AttributID, cascadeDelete: true)
.ForeignKey("dbo.TroisiemeTable", t => t.DeuxiemeAttributID, cascadeDelete: true)
.Index(t => t.AttributID)
.Index(t => t.DeuxiemeAttributID)
.Index(t => t.Attribut_ID);
Dans cet exemple, soit :
* Il s'agit d'un manque de description des multiplicités
* Il s'agit d'un problème de références croisées
===== Exemple de multiciplité de 1 à n =====
modelBuilder.Entity()
.HasMany(x => x.Employes)
.WithRequired()
.HasForeignKey(x => x.SocieteID)
.WillCascadeOnDelete(false);