2008-12-05 4 views
12

Y a-t-il une raison spécifique pour laquelle l'EF nécessite de nouveaux fournisseurs de données et ne peut pas utiliser ODBC? Je pensais que cela devait être un problème spécifique ORM, mais NHibernate fonctionne bien via ODBC. J'utilise NHibernate et je peux continuer à utiliser Nhibernate, mais je crains de ne pas pouvoir assumer la connaissance de Nhibernate pour les futurs programmeurs ici.Pourquoi Entity Framework ne prend-il pas en charge ODBC?

Répondre

13

Entity Framework ne nécessite pas de nouveaux fournisseurs de données, exactement. Il nécessite plutôt des fournisseurs Entity Framework qui étendent les fournisseurs de données existants pour fournir des services supplémentaires requis par Entity Framework, tels que la génération SQL complexe, qui ne font pas partie du modèle de données ADO.NET existant. Je ne pense pas qu'il y ait quelque chose qui empêche quiconque d'écrire un fournisseur Entity Framework pour ODBC basé sur le pont ODBC ADO.NET 2.0 existant. Vous pouvez télécharger the source code for a sample SQL Server provider pour plus d'informations sur les services requis lors de l'extension d'un fournisseur ADO.NET existant pour Entity Framework.

+0

Merci! La génération SQL semble non-triviale. Je me demande si MS collabore avec Oracle/IBM sur leurs fournisseurs. Il semble qu'il y aurait une tonne de chevauchement pour la plupart des cas de requête. – anonymous

+0

Eh bien, ODBC fait déjà beaucoup de génération de SQL, donc ce serait plus facile avec ODBC qu'avec [insérer le serveur de base de données aléatoire ici.] –

+4

Pourtant, c'est un peu étrange que Microsoft l'ignore. Après tout, ils ont inventé ODBC, et tous leurs produits de base de données le supportent toujours. –