Ich benutze die Linq zu Entities. Ich habe meine Haupttabelle Employee Setup mit einem Feld namens VendorID. Lieferanten-ID ist ein Fremdschlüssel in der Lieferantentabelle.Linq zu Entities (EF): Wie bekomme ich den Wert eines FK ohne den Beitritt
Wie es jetzt ist, stellt das Employee-Objekt die VendorID nicht direkt zur Verfügung. Stattdessen kann ich es nur auf diese Weise Zugang:
var employee = (from e in context.Employees.Include("tbl_vendors")
where e.employeeID = 1
select e).FirstOrDefault();
//this gets the vendor ID
int vendorID = employee.tbl_vendors.vendorID;
Das ist nur schön und gut ist, aber es ist zusätzliche Arbeit auf der Datenbank, weil es zwingt einen Join, wo keine nötig ist. Gibt es eine Möglichkeit, diesen Schlüsselwert zu erhalten, ohne gezwungen zu sein, der Tabelle "tbl_vendors" beizutreten?
Also gibt es keine Möglichkeit, es durch den Namen statt durch den Index Speicherort des Schlüssels zu verweisen? Es erscheint gefährlich, den Index zu verwenden, da er möglicherweise geändert werden kann, wenn der Tabelle ein neuer Schlüssel hinzugefügt wird. – bugfixr
Es ist nicht der Index Speicherort des Schlüssels, es ist der Index Speicherort der Spalte innerhalb des Schlüssels - es berücksichtigt die Möglichkeit von zusammengesetzten Schlüsseln –
Sie können durch die EntityKey.EntityKeyValues suchen und überprüfen Sie die EntityKeyMember.Key-Eigenschaft mit dem Schlüssel Name, um den Schlüsselwert zu finden, nach dem Sie suchen. –