Dies ist das EF CORE-Setup, das ich momentan habe.Verknüpfen eines dritten Modells in EF CORE
Telefon Modell
[ForeignKey("TelNoTypeID")]
public int? TelNoTypeID { get; set; }
public DropDown TelNoType { get; set; }
Person Modell
public ICollection<Telephone> TelephoneIDs { get; set; }
ich auch
public virtual ICollection<Telephone> TelephoneIDs { get; set; }
DropDown-Modell versucht haben
public int DropDownID { get; set; }
public string DisplayText { get; set; }
Person Controller
public async Task<IActionResult> Details(int? id)
{
var person = await _context.Persons
.Include(p => p.Gender)
.Include(p => p.Title)
.Include(p => p.AddressIDs)
.Include(p => p.TelephoneIDs)
.SingleOrDefaultAsync(m => m.PersonID == id);
So eine Sammlung von Telefonnummern werden gegen die Person Modell gespeichert.
Dies zurück aus der Datenbank und zeigt auf dem Bildschirm bringt den numerischen Wert aus dem Feld
Telephones.TelNoTypeID
Die äquivalente SQL zu dem, was ich habe, ist
select Telephones.TelNoTypeID from Person
inner join Telephones on Telephones.PersonID = Person.PersonID
Ich brauche den verknüpften Text angezeigt werden Wert stattdessen, die in
DropDown.displaytext
gespeichert wird Das Äquivalent SQL, was ich brauche, ist
select DropDown.displaytext from Person
inner join Telephones on Telephones.PersonID = Person.PersonID
inner join DropDown on DropDown.DropDownID = Telephones.TelNoTypeID
Ich habe versucht mit
.ThenInclude(p => p.<something>)
aber die Dot-Notation bezieht sich nur auf die generische Auflistung Eigenschaften/Methoden, nicht zurück zu meiner Person, Drop-Down-oder Telefon-Modelle
Ich habe verknüpfte das Personenmodell direkt mit dem Dropdown-Modell, wobei der Dropdown-Anzeigetext mit
verwendet wurde. Personenmodell
[ForeignKey("GenderID")]
public int? GenderID { get; set; }
public virtual DropDown Gender { get; set; }
aber trotz des gleichen Code in Telefon setzen, es funktioniert nicht
Wie kann ich ein drittes Modell (DropDown) zu einem zweiten Modell (Telefon) verknüpfen?
Dank
'.Include (p => p.Gender)', warum? Ist das Geschlecht eine andere Klasse/Tabelle? Das gleiche für Titel usw. –
Veröffentlichen Sie die vollständigen (aber abgekürzten) Klassen. Was ist p.AddressIDs? Und ist DisplayText persönlich oder in DropDown? –