J'utilise l'Entity Framework comme ORM pour une application ASP.Net (webforms). Supposons que j'ai un ensemble de pages "liste/détail" dans mon application, lorsque vous cliquez sur une ligne dans la page de la liste, je voudrais passer un ID d'un certain type pour cette ligne à une page de détail, que j'utiliserais ensuite pour charger la ligne à partir de ma couche de données. Dans mon cas spécifique, la clé primaire est simplement une colonne d'identité "rowId".
EF, cependant, semble préférer "cacher" les clés primaires/étrangères afin que vous n'y ayez pas accès (par défaut).
Je suis nouveau dans EF, et je me demande s'il existe une meilleure pratique pour identifier de façon unique une ligne en dehors du contexte de l'entité. J'imagine que je pourrais ajouter une colonne identifiant unique à mon enregistrement et une propriété correspondante à mon modèle d'entité, mais il semble redondant d'avoir effectivement 2 identifiants uniques pour la ligne. Existe-t-il un meilleur moyen de transporter un identifiant au niveau de la couche de présentation ?
Dans mon gestionnaire d'événement _ItemDataBound(), je pense pouvoir faire quelque chose comme.. :
var announcement = (Announcement) e.Item.DataItem;
string rowID = announcement.EntityKey.EntityKeyValues[0].Value.ToString();
Est-ce recommandé ou est-ce que cela va à l'encontre du cadre de travail ?
Merci d'avance.
Scott