2010-05-15 4 views
2

Je sais que cette même question a été posée pour Entity Framework 1, mais maintenant Entity Framework 4 est sorti, et Microsoft affirme qu'il fournit toutes les fonctionnalités de Linq à Sql + more, Entity Framework supporte-t-il maintenant le chargement paresseux des propriétés onéreuses? Dans Linq to Sql, c'est extrêmement facile. Il y a une option Delay Loaded sur n'importe quelle propriété (accessible via le Designer) qui peut simplement être activée ou désactivée. Y a-t-il quelque chose de similaire dans Entity Framework?Entity Framework 4 - Retarder des champs coûteux

Merci

+0

Ceci est une question très importante! Avez-vous trouvé une réponse quelque part ailleurs entre-temps? – Slauma

+0

Malheureusement, non. J'espère que cette fonctionnalité est cachée quelque part, mais je n'ai pas réussi à trouver de référence. J'espère que cela ne veut pas dire que ça n'existe pas. –

+0

Je souffre juste du même problème, cherchant de toute urgence une solution. J'ai demandé au forum MS, voir ma réponse ci-dessous. (La réponse est quelque chose comme un "Yo" ou "Nes".) – Slauma

Répondre

1

J'ai posé la question here sur le forum MS EF. Comme vous le voyez, ils ont fourni un lien vers une description de Table splitting in Entity Framework. Fondamentalement, l'idée est de diviser une table de base de données en plusieurs Entités associées par des relations 1: 1, puis de bénéficier de la caractéristique de chargement paresseux habituelle entre entités apparentées.

Pas aussi confortable que le drapeau de chargement différé dans LINQ to SQL à mon avis mais au moins une solution qui ne nécessite pas de toucher votre table de base de données.

Modifier: Enfin, le support MS a répondu dans le thread que j'ai lié ci-dessus qu'un "indicateur de chargement différé" comme dans LINQ to SQL n'existe pas dans Entity Framework.

-1
+1

L'exemple que vous avez envoyé est pour les entités liées au chargement paresseux. Je cherche un moyen de charger paresseux certaines propriétés dans la même entité. C'est très facile avec Linq2Sql, mais je n'ai pas réussi à trouver un moyen de le faire dans Entity Framework. Les articles de blog que j'ai vus recommandent que je sépare les champs chers dans une table séparée, de cette façon, le chargement paresseux sera faisable, mais devoir changer le schéma de base de données afin de soutenir Entity Framework ne sonne pas bien. –

0

J'ai essayé la méthode de division de table. Fonctionne comme un charme. Créez simplement une deuxième table avec seulement un champ de clé et un champ de blob, relation un-à-un avec la table d'image originale. Supprimer le champ de blob de la table d'image.

Mettez à jour le modèle et créez l'association entre la classe d'image et la classe d'objets blob.

Lorsque vous avez besoin le champ actualy blob ne pas oublier de « inclure » la table blob comme ceci:

from a in dc.GeneralFile.include("Image").select(a => a.FileId, a.Image.Blob) 

espérons que cela fonctionne pour vous.

P.S. Je ai essayé d'ajouter une image, mais je ne suis pas autorisé