Développement

Astuces de développement

Outils pour utilisateurs

Outils du site


langages:asp_csharp:ef:double_cle_etrangere

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<Societe>()
    .HasMany(x => x.Employes)
    .WithRequired()
    .HasForeignKey(x => x.SocieteID)
    .WillCascadeOnDelete(false);
langages/asp_csharp/ef/double_cle_etrangere.txt · Dernière modification: 2019/10/10 13:19 de jonathan