0
votes

Utilisation de entity Framework avec .NET Core et DB2

Quelqu'un a-t-il utilisé .NET Core avec DB2 et EF Core? Nous avons essayé de trouver des pilotes compatibles, mais aucun ne semble exister. Quelqu'un a-t-il trouvé un moyen d'utiliser DB2 avec .NET Core 3.0?

Merci!


0 commentaires

3 Réponses :


0
votes

Des packages pour Db2 sont répertoriés sur la page d'aide EF Core des fournisseurs de bases de données . Je ne les ai pas utilisés personnellement, mais s'ils y figurent, ils devraient bien fonctionner.


2 commentaires

D'accord, ceux-ci datent de 2018 et semblent prendre en charge jusqu'au Core 2.x. Il est donc probablement juste de dire qu'aucun pilote .NET Core 3.0 n'existe encore pour DB2 - à moins qu'IBM n'en développe?


Les NuGets ciblent .NET Standard 2.0, ce qui signifie qu'ils sont compatibles avec tout ce qui implémente .NET Standard 2.0, c'est-à-dire .NET Core 2.x et 3.x. Cela n'a peut-être tout simplement pas eu besoin de changements depuis 2018. Les fournisseurs sont de très bas niveau. Le travail principal (et la plupart des modifications) se déroule dans EntityFrameworkCore et EntityFrameworkCore.Relational.



1
votes

Il n'y a pas de support core 3.0 ou standard 2.1 grâce au terrible support .Net d'IBM. Soi-disant, un pilote alpha sera disponible en mars 2020 si vous contactez leur support.

Vous pouvez une partie de la conversation à ce lien .


2 commentaires

Pour faire un suivi à ce sujet. Ils ont publié un pilote alpha 3.1, bien que vous deviez contacter leur support pour y avoir accès et il ne peut être téléchargé que via leurs pages Passport Advantage. Peu de bogues avec lui, mais il supporte maintenant les convertisseurs de valeur de base, c'est-à-dire le découpage de chaînes ou les champs smallInt en booléens.


IBM a publié il y a quelques jours un fournisseur compatible avec EF Core 3.1 sur nuget.org.



1
votes

IBM a maintenant publié une nouvelle version 3.1.0.300 d' IBM.EntityFrameworkCore sur nuget qui fonctionne avec EF Core 3.1.

Deux choses que je devais faire pour que cela fonctionne:

  • Téléchargez la nouvelle version du fichier de licence qui cible DB2 version 11.5 à partir de Passport Advantage
    • Je ne sais pas pourquoi cette limitation existe, mais notre ancienne licence 11.1 ne fonctionnait tout simplement pas et la base de données n'a pas du tout été mise à jour.
  • Le fichier de licence doit être copié dans C:\Users\{YourUserNameHere}\.nuget\packages\ibm.data.db2.core\3.1.0.300\buildTransitive\clidriver\license
    • Pour les anciennes versions, remplacez buildTransitive par build

Je suppose que l'utilisateur a accès à IBM Passport Advantage, je ne connais pas les licences d'évaluation.

Il était assez déroutant de trouver où télécharger le fichier de licence, mais je l'ai compris et je mentionnerai les étapes ici pour quiconque en a besoin:

Remarque: il est toujours possible d'utiliser l'ancienne bibliothèque avec .NET Core 3.1, tant qu'EF lui-même n'est pas mis à jour vers la version 3.1. Le problème est compatible avec EF 3.1, pas .NET Core 3.1. Tant que la mise à jour du package EF nuget vers une version plus récente est évitée, les choses fonctionneront très bien.


0 commentaires