0

Je veux avoir une ObjectQuery qui retourne des entités suivies (pas de données statiques), mais je ne veux pas qu'elle charge toutes les colonnes, je veux que certaines colonnes soient chargées comme nulles, je ne veux pas utiliser select, puisque cela retournera un IEnumerable des valeurs, pas des objets suivis.Entity Framework: exclut les colonnes de la sélection dans Entity Framework?

Existe-t-il un moyen de le faire?

Si oui, comment puis-je recharger ces colonnes à la demande?

Répondre

2

Avez-vous essayé de créer une vue, puis de mapper la vue? En créant une vue, vous pouvez sélectionner les colonnes que vous voulez vraiment et seulement celles qui apparaîtront sur le modèle d'entité.

+0

Oui j'ai essayé. mais il est impossible de mapper des vues dans EF! Lire une autre question que j'ai posté avant de poster celui-ci (j'ai effectivement posté celui-ci après avoir été frustré de celui-là): http://stackoverflow.com/questions/3581034/create-one-to-one-relationship-between-table- et-view-in-ef4 – Shimmy

0

Je pense que le seul moyen est de créer un nouveau type d'entité qui ne contiendra pas de colonnes dont vous n'avez pas besoin. Vous allez mapper ce type d'entité sur la même table. Le chargement à la demande (paresseux) ne fonctionne que pour les propriétés de navigation.

Edit:

Mon idée précédente ne fonctionne pas, mais dans certains cas particuliers, vous pouvez utiliser cette idée de article. Au lieu de modéliser une entité unique à partir d'une seule table, vous modéliserez plusieurs entités liées à des relations 1: 1. Les entités ne se chevaucheront pas dans les propriétés (à l'exception de la clé primaire) comme mon idée précédente a supposé que cela ne fonctionne pas. Vous aurez alors l'entité principale avec les champs que vous voulez charger immédiatement et les entités connexes qui seront chargées paresseusement si nécessaire.

+0

+1 pour l'idée, mais avez-vous testé de cette façon et cela fonctionne? Vous êtes sûr que le modèle autorisera plusieurs types pour la même table? En outre, comment vais-je mapper entre les deux types (c'est-à-dire TableFull, TableSummary)? – Shimmy

+0

Ok, mon mauvais. J'étais sûr que cela devrait être possible mais un test rapide m'a montré que l'équipe EF me laissait tomber. Mapper deux entités non liées à la même table ressemble à un gros problème. Il a commencé avec l'erreur que les entités partagent la clé primaire et la résolution de ce problème avec un peu de hack seulement soulevé d'autres problèmes. –

+0

Je pense que Entity Framework est une bonne idée, c'est juste dommage qu'il soit géré par les équipes fainéantes de Microsoft. Parce que tant de fonctionnalités clés manquent. Existe-t-il des produits mieux que EF (avec un designer)? – Shimmy