2016-11-04 3 views
0

Ich versuche, das Standard-FK umzubenennen, aber Code First Migration erzeugt weiterhin ein zweites FK in der gleichen Tabelle mit einem anderen Namen, wodurch das Tabellenschema durcheinander gebracht wird.EF-Migration, die dupliziertes FK mit anderem Namen generiert

Das FK-Modell hat eine PK mit dem Namen Id, ich möchte nur die Konvention von meinem Client erforderlich, ändern Sie den Namen für ID (etwas).

1) generiert Migration:

Generated Migration

2) Mapping:

Code First Map

Was soll ich tun?

Antwort

0

Wenn Ihre Entität CorpoGestor eine Eigenschaft für den Fremdschlüssel verfügbar macht, verwenden Sie HasForeignKey anstelle von Map und MapKey.

HasRequired(x => x.Conselho) 
    .WithMany() 
    .HasForeignKey(x => x.IdConselho); 

Eine andere Lösung: Sie können die ForeignKey Attribut in der Eigenschaft verwenden können, anstatt die Beziehung in der CorpoGestorMap Klasse der Zuordnung:

public class CorpoGestor 
{ 
    ... 

    public int IdConselho { get; set; } 

    [ForeignKey("IdConselho")] 
    public virtual Conselho Conselho { get; set; } 
} 

Eine Warnung: Attribute in den Entitäten ist vom Konzept her nicht so cool mit Sie implementieren den Code in den Klassen EntityTypeConfiguration, da Sie Ihre Entitäten mit Datenschichtcode verschmutzen, der in den EF-Klassen enthalten sein sollte.

Verwandte Themen