2009-07-09 9 views
4

Je dois regarder la solution ORM pour une nouvelle application Web ASP.NET avec un backend Oracle.Entity Framework et Oracle

Est-ce que quelqu'un a eu une bonne/mauvaise expérience avec Entity Framework avec Oracle?

Y a-t-il des alternatives (libres de préférence)?

+0

duplication possible de [Pouvez-vous utiliser Microsoft Entity Framework avec Oracle?] (Http://stackoverflow.com/questions/82644/can-you-use-microsoft-entity-framework-with-oracle) – bmargulies

Répondre

3

Microsoft ne dispose pas d'une option prise en charge pour Oracle pour Entity Framework - toutes les options actuelles sont des fournisseurs tiers non libres. NHibernate fonctionne très bien avec Oracle dans mes expériences, tout comme LLBLGenPro (pas gratuit, mais a une licence par développeur à prix raisonnable pour le concepteur de mappage d'entités).

+0

J'ai eu un le sentiment que MS n'a pas d'option supportée - la documentation mentionne que EF fonctionnera avec ** n'importe quelle source de données, mais je n'ai pas trouvé de détails. Merci beaucoup d'avoir éclairci ça. –

1

Je n'ai aucune expérience avec EF mais nhibernate est une très bonne alternative.
Jetez un coup d'œil aux moulages d'écran de Stephen Bohlen au summer of nhibernate pour une excellente introduction à nhibernate.

1

Microsoft Oracle Client et ODP.NET ne prennent pas en charge Entity Framework et LINQ to SQL. DataDirect dans sa nouvelle version bêta prend en charge Entity Framework mais ne prend pas en charge LINQ to SQL. Devart dotConnect pour Oracle prend en charge à la fois Entity Framework (et LINQ to Entities) et LINQ to Oracle (implémentation spécifique à Oracle de LINQ to SQL).

+0

Merci. J'utilise toujours votre produit. J'espère que ce lien sera utile - http://www.devart.com/dotconnect/oracle/. – JackD

1

Nous avons eu beaucoup de succès avec Oracle 11g et Entity Framework 1.0 (Visual Studio 2008 SP1) sur mon projet actuel. Pour combler l'écart avec la fonctionnalité prête à l'emploi, j'ai implémenté un outil gratuit de CodePlex appelé EF Oracle ODP Provider. Cela exploite les derniers fournisseurs de données Oracle et fournit un wrapper pour activer la génération de modèle de données d'entité. Malheureusement, il ne s'intègre pas bien avec Entity Designer intégré dans Visual Studio, vous devez donc exécuter quelques utilitaires de ligne de commande pour que votre modèle soit mis à jour et maintenu.

Vous pouvez en savoir plus ici: http://eforacleodpprovider.codeplex.com/.

3

En Juin 2010, Oracle a publié un énoncé d'orientation concernant le support de Microsoft Entity Framework ADO.NET:

plans Oracle pour améliorer Oracle Data Provider pour soutenir ADO .NET (ODP.NET). Entité NET Cadre. Les développeurs de base de données Oracle pourront utiliser les outils Visual Studio et les API faisant partie intégrante de ADO.NET Entity Framework. ADO.NET Entity Framework est une technologie côté client/intermédiaire. En tant que tel, le logiciel client Oracle et ODP.NET s'intégreront directement à Entity Framework pour prendre en charge l'accès aux données avec la base de données Oracle.

plans Oracle sur la libération d'un bêta « Vers la fin de 2010 » et à la production en 2011.

Plus d'informations peuvent être trouvées en téléchargeant le Statement of Direction lui-même.

0

Oracle prend désormais en charge Entity Framework avec ses Oracle Data Access Components (ODAC). Toutefois, ceci n'est pris en charge que pour .NET 4.0+.

Si vous vous retrouvez avec un client comme je l'avais, qui insistait obstinément pour rester .NET 2.0/3.5, l'ORM Telerik Open-Access désormais libre se comporte très bien comme Entity Framework supporte un certain nombre de bases de données dont Oracle. Prise en charge des anciennes versions de.NET sera probablement abandonné s'il ne l'a pas déjà été, mais il y a des versions que vous pouvez sûrement télécharger qui fournissent le support.

0

Le support a été supprimé pour EF6, nous avons donc dû nous en tenir à EF5 pour pouvoir se connecter à oracle db. Nous avons rencontré quelques problèmes avec la cartographie. Il ferait correspondre le nombre (5) à court par défaut et lancerait une exception s'il était lu au-dessus de 32k. Le correctif a causé un tas d'erreurs dans le déploiement. Nous avons fini par changer la base de données. Évitez les types de données number (5) et number (10).

Je fais actuellement des emplettes pour un autre orme avec le support de LINQ et d'Oracle.

Jusqu'à maintenant, j'ai trouvé Telerik Data Access et NHibernate.