J'essaie d'écrire une bibliothèque d'accès aux données pour notre suite d'applications qui utilise Oracle dans .net. Nous utilisons actuellement NHibernate et songeons à migrer car cela ne semble pas être pris en charge très bien.
Je travaille avec Visual Studio 2013 et nous avons déjà construit notre base de données Oracle. Nous n'avons pas écrit pour le mettre à jour (c'est le domaine des gars de la base de données). Cela ne fera donc pas partie des calculs de notre côté.
Le client sur le serveur est en 32 bits, nous allons donc nous en tenir à cela pour le moment. Il est déjà inscrit dans le document GAC, et il n'est pas nécessaire de le changer. Nous avons donc le client 32 bits sur nos boîtes de développement.
EntityFramework 6.1.0 est installé dans mon projet via nuget. J'ai ODAC 1.112.3.20 installé dans mon projet. La version 32 bits de l'application. Le pilote ODP.net.x86 est également installé (également via nuget).
Le problème est que chaque fois que j'essaie de créer une connexion à une base de données ADO.net, le fournisseur Oracle n'est jamais une option. Qu'est-ce que je rate? De quoi ai-je besoin pour que cela fonctionne?
Une fois, j'ai lu un forum Oracle qui disait que je devais configurer Entity Framework sur 5.0 et non sur 6.0. Ce qui va bien, mais comment je fais ça?
Le support EF 6 est maintenant fourni par ODAC 12c Release 3 Beta:
De la lettre d'information .Net Developer (l'emphase mienne):
Nouveau téléchargement: Version bêta de la version 3 de la norme ODAC 12c La nouvelle version bêta de l’ODAC comprend Entity Framework 6 , code d’abord, migrations de code d’abord, .NET Framework 4.5.2, géré par ODP.NET Base de données XML et prise en charge de la transaction distribuée ODP.NET gérée sans Oracle.ManagedDataAccessDTC.dll.
Je sais que ça commence à devenir un peu vieux, mais ceci est pour répondre à la dernière partie de votre question (comment installer EFv5). (Instructions écrites pour VisualStudio 2013) avec votre solution ouverte, cliquez sur TOOLS-> NuGet Package Manager-> Package Manager Console. Entrez les informations suivantes:
Install-Package EntityFramework -Version 5.0.0
C’est un bon moment depuis que j’ai installé ma machine, mais je pense que c’est ce que je devais faire. Espérons que cela aide.
Oh, j'ai oublié une chose, je ne sais pas si c'est important. Vous devrez peut-être ajouter une référence dans ce projet de modèle au pilote Oracle. Faites un clic droit sur projet -> Ajouter -> Référence -> Assemblages -> Recherchez "Oracle". Espérons qu'il existe une entrée pour Oracle.ManagedDataAccess (ma version était 4.121.1.0).
NUMBER(10)
, elle sera mappée en tant qu'int 32 bits, lorsque tous les nombres à 10 chiffres ne correspondent pas :(EF 6 n'est pas encore pris en charge par ODP.NET. Voir les notes de version (README) pour plus d'informations. EF6 sera pris en charge sous peu.
Edit: EF6 est maintenant supporté.
Désolé, j'ai manqué une partie de votre question.
Si vous utilisez Visual Studio 2013, vous devez télécharger Oracle Developer Tools pour Visual Studio version 12.1.0.1.2 ou ultérieure. Avec toute version plus ancienne, l'intégration avec VS 2013 ne sera pas possible.
Voici l'emplacement de téléchargement: http://www.Oracle.com/technetwork/topics/dotnet/utilsoft-086879.html
EF 6.0 n'est pas encore pris en charge, mais vous pouvez utiliser les fournisseurs EF5 dans VS 2013. Mon autre réponse n'est donc pas vraiment pertinente.
Entity Framework 6 Code d'abord
ODAC 12c R3 est la première version d'ODP.NET à certifier avec Entity Framework (EF) 6 et EF Code First. EF Code First est un modèle de développement Populaire pour le mappage objet-relationnel .NET. Les développeurs Définissent le modèle de domaine d'application à l'aide du code source, plutôt que Avec un concepteur ou un fichier de configuration basé sur XML. Les classes d'un modèle EF Code First Sont définies dans le code via les objets Plain Old CLR (POCO).
...
Ces fonctionnalités sont toutes disponibles à la fois dans ODP.NET, géré et non géré.
http://cshay.blogspot.com/2014/09/odac-12c-release-3-beta-now-available.html