2016-06-04 14 views
1

Ich habe die folgenden Eigenschaften in meinem Agency Modell definiert:Doppelte Eigenschaftsnamen Fehler mit EF Migration

public int AgencyCapturedById { get; set; } 
public User AgencyCapturedBy { get; set; } 

Wenn ich einen Lauf einen Add-Migration Befehl versuchen, erhalte ich folgende Fehlermeldung:

AgencyCapturedById: Name: Each property name in a type must be unique. Property name 'AgencyCapturedById' is already defined.

Wenn es bereits an anderer Stelle in Klasse Agency definiert wurde, würde das Projekt nicht erstellt, und eine Suche der gesamten Lösung für Dateitypen *.* für den Begriff AgencyCapturedById führt nur zu einem Ergebnis, die Linie oben, wo es erklärt wird. Wo könnte EF einen anderen, identischen Namen finden? Es ist nicht einmal so, als hätte ich es vorher benutzt und es entfernt, also könnte ich irgendwo eine Versammlung verfolgen.

+0

Jeder fließende Code oder Vererbung? Ist die Agentur-Tabelle bereits vorhanden? –

+0

Kein flüssiger Code oder Vererbung zu der Zeit, als ich den Fehler bekam. – ProfK

Antwort

0

Könnte es wegen Überschreiben der Namenskonventionen sein? Zum Beispiel kann ich diesen Fehler mit dem folgenden Code generieren:

protected override void OnModelCreating(DbModelBuilder modelBuilder) 
{ 
    modelBuilder.Properties() 
          .Where(p => p.Name == "Id") 
          .Configure(p => p.IsKey().HasColumnName(p.ClrPropertyInfo.ReflectedType == null ? "Id" : p.ClrPropertyInfo.ReflectedType.Name + "Id")); 
} 

public class Agency 
{ 
    public int Id { get; set; } 
    [Column("UserId")] 
    public int UserId { get; set; } 
    public User AgencyCapturedBy { get; set; } 
} 

[ComplexType] 
public class User 
{ 
    public int Id { get; set; } 
} 
+0

Ja, aufgrund meiner EF-Modell-Builder-Konventionen scheint eine Eigenschaft wie 'public User AgencyCapturedBy' EF automatisch eine 'public int AgencyCapturedById'-Eigenschaft/Spalte zu erstellen. Ich habe dies entdeckt, indem ich die 'Id'-FK-Eigenschaft auskommentiert habe und festgestellt habe, dass die Migration noch eine neue Spalte mit genau diesem Namen generiert hat. – ProfK

Verwandte Themen