Retard chargement champs coûteux dans Entity Framework v.1

voix
4

Je crois Après la chasse autour du filet, et pensant que je serais venu avec la solution, pour avoir frappé un autre mur de briques.

J'ai une table dans ma base de données: Photos; contenant des colonnes pour PhotoID, Légende, commande, et quatre ensembles de données binaires: Original, Grand, Moyen et Petit (oui, il est basé sur l'ancien kit de démarrage ASP.NET avec divers correctifs, etc.).

Je suis en train de passer de L2S à Entity Framework pour quelques-uns des avantages que j'apparais pour obtenir avec cela - donc je ne ai plus besoin de passer par une propriété PhotosTags pour obtenir la liste des balises attachées à une photo par exemple, mais Je suis à la recherche d'un moyen de retarder le chargement des données binaires - la plupart du temps, je ne ai besoin légende, étiquette, et l'ID, et je la main alors ceux-ci à un autre secteur pour obtenir les données binaires lorsqu'un utilisateur affiche réellement l'image .

J'ai examiné les postes suivants:

  1. Comment découper une table de données?
  2. « Tableau Fractionnement »: mappage de plusieurs types d'entités à la même table.
  3. Chapitre 7: Entity Framework Guide d' apprentissage (7.1 chargement Retard des champs coûteux)

Et je me suis retrouvé avec une recherche Mapping entité comme ceci:

Entité Schéma http://www.doodle.co.uk//UserFiles/Image/EF-LazyLoad.png

Et, selon les liens ci-dessus, j'ai modifié le fichier edmx pour inclure la contrainte référentielle suivante:

<ReferentialConstraint>
  <Principal Role=Photos>
    <PropertyRef Name=PhotoID />
  </Principal>
  <Dependent Role=PhotoDetails>
    <PropertyRef Name=PhotoID />
  </Dependent>
</ReferentialConstraint>

Le modèle valide, mais ne construit pas - à cause d'un problème avec la cartographie Tags Je pense que:

Erreur 3019: un problème dans la cartographie des fragments à partir des lignes 871, 892: cartographie incorrecte des colonnes de clés composites. contrainte de clé étrangère 'FK_siteContent_TagsPhotos_siteContent_Photos' de siteContent_TagsPhotos de table (PhotoID) à la table siteContent_Photos (PhotoID): Colonnes (PhotoID) dans siteContent_TagsPhotos de table sont mis en correspondance avec des propriétés (PhotoID) dans siteContent_TagsPhotos et colonnes (PhotoID) dans siteContent_Photos de table sont mis en correspondance des propriétés (PhotoID) en PhotosPhotoDetails. L'ordre des colonnes à travers les correspondances ne sont pas conservées.

La relation de Photos TAGS est à travers une table de liens, colonnes PHOTOID, TagID.

Quelqu'un at-il réussi à obtenir soit ces recommandations, ou quelque chose de similaire, de travailler avec Entity Framework .NET 3.5 SP1 avec une structure de données comme celui-ci? Ou pouvez-vous indiquer les limites de mon GoogleFU?

Je sais que tout cela sera beaucoup plus facile dans .NET 4, mais ce n'est pas ici, et ce sera probablement un certain temps après sa sortie que mon hôte commence à offrir l'installer quelque part.

Merci.

Créé 26/08/2009 à 22:55
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
2

Je l'ai touché la même question et alors que je ne l'ai pas trouvé une solution pour 3.5SP1 Je ne confirme que cette erreur va avec EF 4.0.

En fait, une solution de contournement potentiel pour vous serait d'utiliser un champ différent pour la clé primaire dans votre entité de PhotoDetails.

Créé 04/09/2009 à 06:02
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more