2009-10-29 14 views
1

Est-il possible de matérialiser (dans Entity Framework) des entités à partir d'un lecteur de données SQL standard? J'écris le SQL spécifique qui est passé au serveur using EntityConnection.StoreConnection. Thsi renvoie un lecteur de données standard contenant des lignes qui doivent être matérialisées en tant qu'entités.Matérialisation des entités à partir de SqlDataReader

Je suppose qu'une solution de contournement consiste à créer une importation de fonction Entité-retour qui peut exécuter mon SQL arbitraire, mais je me demande s'il existe un moyen plus net?

Cordialement

Lee

+0

Cela aiderait beaucoup si vous expliquiez pourquoi vous voulez faire cela. Si votre but est simplement d'écrire du SQL personnalisé, ce n'est pas ce que je ferais. –

+0

Salut Craig Oui, c'est pour écrire du SQL personnalisé. Nous avons notre propre lanaguage spécifique au domaine pour interroger les entités et nous avons besoin de traduire cela en SQL. J'ai d'abord envisagé d'utiliser Entity-SQL, mais il crée cependant un SQL extrêmement complexe et mon intention est donc de générer le SQL à la place. Lee –

Répondre

0

Si vous souhaitez spécifier SQL personnalisé pour vos résultats de l'entité, vous devez utiliser un defining query (see also) (pris en charge par l'EF, mais pas le concepteur de l'interface graphique, au moins en v1) ou un stored proc.

Mise à jour: Dans EF v4, you can use ExecuteStoreQuery<T> et obtenir la matérialisation d'entités arbitraires gratuitement.

+0

Il ya deux problèmes avec cette méthode: 1) Je devrais créer un nouveau type d'entité - Je veux créer des entités matérialisées du type que j'ai déjà. 2) Il semble que je ne puisse spécifier dynamiquement la requête de définition –

+0

Vous pouvez passer un SQL (ou un fragment de celui-ci) à un proc. –

Questions connexes