J'utilise Linq to Entities. J'ai ma table principale, configuration de l'employé avec un champ nommé vendorID. L'ID du fournisseur est une clé étrangère dans la table Vendors.Linq to Entities (EF): Comment obtenir la valeur d'un FK sans faire la jointure
Comme c'est le cas actuellement, l'objet Employee n'expose pas directement l'identificateur de fournisseur. Au lieu de cela, je ne peux accéder à cette façon:
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;
C'est très bien et dandy, mais il est un travail supplémentaire sur la base de données, car il oblige une jointure où aucun besoin. Est-il possible d'obtenir cette valeur de clé sans être obligé de faire une jointure à la table tbl_vendors?
Il n'y a donc aucun moyen de le référencer par son nom plutôt que par l'emplacement de l'index de la clé? Il semble dangereux d'utiliser l'index car il pourrait potentiellement être changé si une nouvelle clé est ajoutée à la table. – bugfixr
Ce n'est pas l'emplacement d'index de la clé, c'est l'emplacement d'index de la colonne dans la clé - il prend en compte la possibilité de clés composées –
Vous pouvez rechercher dans EntityKey.EntityKeyValues et inspecter la propriété EntityKeyMember.Key contenant la clé nom pour trouver la valeur clé que vous recherchez. –