J'utilise Entity Framework et SQL Server 2008 avec l'approche Database First.Récupérer seulement quelques colonnes en utilisant un ORM
Mon problème est:
j'ai quelques tables qui tient beaucoup de colonnes (~ 100), et lorsque je tente de récupérer beaucoup de lignes il faut un temps considérable avant de retourner les résultats, même si parfois Je dois utiliser seulement 3 ou 4 colonnes de cette table.
je passé une demi-journée en Stackoverflow essayant de trouver un moyen de résoudre ce problème, et je suis venu avec deux solutions:
- L'utilisation des procédures stockées pour récupérer des données avec les colonnes que je veux.
- Modifiez les fichiers .edmx (xml) et .cs pour supprimer les colonnes que je n'utiliserai pas.
à nouveau Mon problème est:
Si j'utilise des procédures stockées pour récupérer les données avec les colonnes que je veux, Entity Framework lâche, il bénéficie et je peux utiliser ADO.NET au lieu de et appelez directement les procédures stockées ...
Je ne peux pas prendre la deuxième solution, parce que chaque fois que je fais un changement dans la base de données, je suis obligé de régénérer le fichier .edmx et je perds les modifications que j'ai faites avant: '(
Existe-t-il un moyen de le faire d'une manière ou d'une autre dans Entity Framework? Est-ce possible!
Je sais que d'autres ORM existent comme NHibernate ou Dapper, mais je ne sais pas s'ils peuvent offrir cette fonctionnalité sans causer beaucoup de douleur.
Avez-vous essayé d'utiliser le mot-clé 'select' en vous l'expression LINQ? –
Pourquoi ne sélectionnez-vous pas simplement les colonnes spécifiques? –
Essayez-vous de manipuler des objets d'entité avec la plupart des colonnes étant chargées paresseux? C'est possible avec NHibernate – jbl