Comment sélectionner seulement quelques champs d'une table dans EF
J'ai une table avec 9 colonnes dans la base de données et je veux être en mesure de charger uniquement certains champs de si j'en ai besoin.
Comment puis-je faire cela avec Entity Framework 4 s'il vous plaît?
par exemple, Mon tableau comporte les champs suivants:
ID, FirstName, LastName, FotherName, BirthDate, Mobile, Email
et je veux être en mesure de simplement aller chercher ces colonnes:
ID, FirstName, LastName
Mon projet est un ASP.NET MVC 3
application, avec SQLServer 2008 Express
et EF 4.1
.
source d'informationauteur
Vous devez vous connecter pour publier un commentaire.
Supposons que vous disposez d'une table avec ce modèle:
Maintenant, vous voulez simplement aller chercher
ID
FirstName
LastName
etFotherName
. Vous pouvez le faire en 2; La première façon est de chercher comme unanonymous
objet, regardez:Maintenant, votre retour de type de valeur est
anonymous
vous pouvez travailler avec elle, tels que:D'une autre manière (par exemple lorsque vous voulez passer l'objet comme un Modèle à un Vue), vous pouvez définir une nouvelle classe, (c'est à dire
UserViewModel
), et lorsque vous sélectionnez l'objet, sélectionnez-le, comme unUserViewModel
. look:et dans la requête, prenez ceci:
Look juste UN différence il y a entre eux, dans labda expression, au lieu de
u => new {}
nous sommes à l'aide de
u => new UserViewModel{}
. Bonne chance.Il peut y avoir plusieurs façons de faire ce travail, mais à l'aide de
Automapper
package NuGet est le plus simple que j'ai vécu.Autmapper
package NuGet pour votre projet de NuGet package explorer.Deuxième: Faire un simple
ViewModel
qui ne contient que des attributs requis:Troisième: Initialiser votre votre mapper que pour une fois dans
app_start
classe comme:Quatrième: Ajouter l'entrée dans
Global.asax.cs
:Cinquième: Utiliser dans votre contrôleur de l'endroit où vous voulez comme ceci:
Dernier: Vous pouvez créer autant de cartes que vous le souhaitez entre vos
Models
etViewModels
par l'initialisation d'une fois dans leapp_start
'sAutoMapperConfig
de classe et de les utiliser où vous le souhaitez avec une simple ligne de code.Aussi, vous pouvez trouver beaucoup d'aide sur
Automapper
si vous effectuez une recherche à ce sujet. Son site principal est ici.Important:
Je suis un développeur de
ASP.NET MVC 5
.Automapper
fonctionne très bien pour moi à chaque fois. Je ne peux pas le vérifier surMVC 3
ou âgés de plus deMVC 5
.