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; }
}
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 –
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
In Ihrem Fall haben Benutzer und Mandant beide einen Fremdschlüssel des Dashboards. Vorausgesetzt, dass Dashboard-Tabellendaten vor Benutzern erstellt wurden. – Pavvy