J'utilise 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 liste, je voudrais passer un identifiant de type pour cette ligne à une page de détail, que j'utiliserais ensuite 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". Cependant, EF semble préférer "cacher" les clés primaires/étrangères de sorte que vous n'ayez pas accès à celles-ci (par défaut). Je suis nouveau à 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 uniqueidentifier à mon enregistrement et une propriété correspondante à mon modèle d'entité, mais il semble redondant pour avoir effectivement 2 identifiants uniques pour la ligne. Existe-t-il un meilleur moyen de contourner un identifiant sur la couche de présentation?Comment identifier une entité de manière unique dans Entity Framework?
Dans mon gestionnaire d'événements _ItemDataBound(), je pense que je peux faire quelque chose comme:
var announcement = (Announcement) e.Item.DataItem;
string rowID = announcement.EntityKey.EntityKeyValues[0].Value.ToString();
Est-ce recommandé, ou tout simplement travailler contre le cadre?
Merci d'avance.
Scott
L'implémentation du modèle de référentiel allait en fait être mon prochain refactoring :) Je ne suis pas sûr d'où j'ai eu l'impression que la propriété .RowID ne serait pas disponible pour moi ... cela fonctionne bien pour moi dans ce cas. Bon point sur # 3 ... Je suis nouveau à EF et de sentir ce que je devrais et ne devrais pas faire avec elle. –