Como sabemos a Oracle levou um tempo para aceitar que o .NET Core ia explodir no mercado, e seu drive de conexão para o core levou um tempo para dar as caras no mercado, mais a empresa só liberou o ODP.NET por enquanto, ainda não temos suporte do mesmo para o Entity Framework Core, somente com componente pago da DevArt. Vamos ver uma demo básica para mostrar como é simples fazer a conexão com o banco .
Criação do Projeto no Visual Studio 2019
Para o exemplo já estou usando a versão do Visual Studio 2019, então vamos criar nosso projeto.
Na segunda tela vamos selecionar Console App (.NET Core) e clicar em “next”.
No exemplo vou manter o nome padrão que já vem e só vou clicar no “create” para iniciar o projeto.
Instalação do ODP.NET
Após criado o projeto vamos instalar o ODP.NET no nosso projeto, para isso vamos ao Solution Explorer em Dependencies e vamos clicar com o botão direito e vamos ao Manage Nuget Packes.
Vamos buscar por “Oracle.ManagedDataAccess.Core”, para instalar a dependência em nosso projeto.
Agora é só instalar o provider, na data de criação do artigo o provider está na versão 2.18.3.
Concluída a instalação agora podemos iniciar o código.
Código de exemplo
Primeiro passo para é criar uma variável com a string de conexão com o banco. No exemplo eu estou usando um container Docker de uma imagem do Oracle XE para montar o exemplo, link da imagem no fim do artigo.
Agora vamos criar uma conexão do Oracle passando a string de conexão, lembrando que tempos que dar o using no “Oracle.ManagedDataAccess.Client”.
O próximo passo é criar um Command para executar nossa consulta:
Após criado o Command então devemos abrir nossa conexão, então passar nossa consulta ao CommandText para poder efetuar a busca. Vamos receber um datareader de retorno da execução, onde poderemos percorrer ele exibindo o resultado.
Abaixo o exemplo completo:
Se executarmos agora nossa aplicação de exemplo teremos o seguinte retorno:
E está ai, nossa aplicação .NET Core conectando no Oracle.
Conclusão
A Oracle ainda está bem devagar no desenvolvimento para o .NET Core, mais esperamos que ela libere em breve o suporte ao Entity Framework Core, pois muitos projetos ainda não estão sendo migrados para o .NET Core por falta de suporte da empresa.
Código de exemplo:
https://github.com/tborgesvieira/Oracle-Provider-Core