0

Dies ist mein erster Beitrag, also bitte entschuldigen Sie, wenn ich nicht die richtige Vorgehensweise befolgt habe. Beachten Sie auch, dass ich erst diese Woche mit dem EF-Code First begonnen habe, also bin ich sehr neu und verstehe nicht wirklich alle Lösungen auf stackoverflow. Das Problem: Ich habe drei Klassen: Benutzer, Mieter und Dashboard.
Ein Dashboard kann nur für einen Benutzer oder einen Mieter sein. Mit anderen Worten, ein Benutzer verfügt über ein Dashboard und ein Tenant über ein Dashboard. Es ist immer eine Eins-zu-Eins-Beziehung zwischen Benutzer und Dashboard. Das gleiche gilt für Mieter und Dashboard.Tabelle Fremdschlüssel verweist auf eine von zwei Tabellen

Wie würde man diese Beziehungen erstellen?

Ich habe eine Menge der Annotationsmethoden sowie die fließenden API-Methoden durchgelesen, aber ich muss zugeben, dass ich immer noch sprachlos darüber bin, wie ich es in Gang bringen kann.

public class User 
{ 
    [Key] 
    public int ID { get; set; } 

    public int TenantId { get; set; } 
    public virtual Tenant Tenant { get; set; } 
} 

public class Tenant 
{ 
    [Key] 
    public int ID { get; set; } 
    public string Name { get; set; } 
} 

public class Dashboard 
{ 
    [Key] 
    public int DashboardId { get; set; } 
    public string Description { get; set; } 

} 
+0

Sie sagen, dass Benutzer mit Armaturenbrett eine Eins-zu-Eins-Beziehung hat. Aber Ihre Benutzerklasse hat Navigationseigenschaft für Tenant und nichts für Dashboard –

+0

Ja das ist wahr, es ist nur ein Beispiel für die beiden Klassen. Ich habe die Datenanmerkungen entfernt, da sie nicht funktionierten. Irgendwie hoffte ich, dass ich ein Beispiel für die "nicht abgeschlossenen Klassen" geben könnte und dann kann mir jemand helfen, wie man "sie ausfüllt". Hoffnung, die Sinn macht. – SlapChip

+0

In Ihrem Fall haben Benutzer und Mandant beide einen Fremdschlüssel des Dashboards. Vorausgesetzt, dass Dashboard-Tabellendaten vor Benutzern erstellt wurden. – Pavvy

Antwort

0

In den folgenden beiden Benutzer und Mieter haben ein einziges Dashboard

public class User 
{ 
    public int UserId {get; set;} 
    public virtual Dashboard Dashboard {get; set;} 
} 

public class Tenant 
{ 
    public int TenantId {get; set;} 
    public string Name {get; set;} 
    public virtual Dashboard Dashboard {get; set;} 
} 

public class Dashboard 
{ 
    public int DashboardId {get; set;} 
    public string Description {get; set;} 
} 
+0

Hallo nochmal. Entschuldigung für die langsame Antwort. Habe es heute nur getestet. Problem beim Hinzufügen der Migration Ich erhalte den folgenden Fehler: "Das Prinzipalende einer Zuordnung zwischen den Typen 'BOF365WebApp.Models.User' und 'BOF365_Solution.Models.XC365Core.Dashboard.Dashboard' konnte nicht ermittelt werden. Das Prinzipalende dieser Verbindung muss explizit konfiguriert werden, entweder mit der Beziehung fließend API oder Datenanmerkungen. " – SlapChip

Verwandte Themen