Como se conectar a uma conexão de database Oracle do .Net Core

Dentro de uma biblioteca .netCore, quero me conectar a um database Oracle. Existe alguma maneira que eu possa fazer isso ainda?

Eu tentei as sugestões em outro post SO , mas não funciona, talvez removido desde então? Como você pode ver no meu project.json, estou tentando usar o “net461”.

Atualmente estou tentando usar Oracle.ManagedDataAccess.Client via ADO.Net antiquado. Eu também sei que a Oracle ainda não comprou um conector .netCore. Mas mesmo assim eu não consigo fazê-lo funcionar, ele se esforça para obter o System.Data incluído, erros sempre que eu tento adicioná-lo.

Meu project.json é assim:

{ "version": "1.0.0-*", "dependencies": { "NETStandard.Library": "1.6.0", "Oracle.ManagedDataAccess": "12.1.24160719", }, "frameworks": { "netstandard1.6": { "imports": [ "dnxcore50", "net461" ] } } } 

É assim que eu estava tentando fazer isso no momento.

 using Oracle.ManagedDataAccess.Client; public class MyRepository { public string GetServerVersion() { var _db = new OracleConnection("User Id=myUser;Password=myPassword;Data Source=MyOracleConnection"); var serverVersion = _db.ServerVersion; return serverVersion; } } 

No entanto, o acima não é compilado, pois não tem System.Data, que estou lutando para importar.

Eu não estou entrincheirado em qualquer maneira particular de fazer isso, eu só quero a melhor opção razoável neste momento .

Lançamento da versão beta do driver .Net Core Managed, lançado pela Oracle no final de janeiro de 2018 http://www.oracle.com/technetwork/topics/dotnet/downloads/net-downloads-160392.html . Tablete de platfom suportado no doc agora é Win e Linux.

Nuget: https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core

Outras alternativas antigas com clientes Oracle padrão / instantâneos:

  • para .Net Core 2.0 Eu recomendo usar ericmend oracleClientCore-2.0: https://github.com/ericmend/oracleClientCore-2.0 . Nuget: dotNetCore.Data.OracleClient Eu usei-o com sucesso na plataforma Win e Linux. Existe a minha pequena amostra
  • alternativelly System.Data.OracleClient trabalha para 2.0 também – veja @Owen post. Mas eu testei apenas na plataforma Win
  • Para .Net Core> = 1.0, você pode usar o cliente não oficial LinqDan da Oracle para .NET Core, baseado no cliente Oracle da Mono, https://github.com/LinqDan/oracleclientcore Nuget: Mono.Data.OracleClientCore .

meu TestCore.csproj para a última alternativa:

   Exe netcoreapp1.0      

Meu programa.cs:

 using System; using System.Data.OracleClient; namespace TestCore { class Program { static void Main(string[] args) { Console.WriteLine("Starting.\r\n"); using (var _db = new OracleConnection("User Id=myUser;Password=myPassword;Data Source=MyOracleConnection")) { Console.WriteLine("Open connection..."); _db.Open(); Console.WriteLine( "Connected to:" +_db.ServerVersion); Console.WriteLine("\r\nDone. Press key for exit"); Console.ReadKey(); } } } } 

A Oracle planeja certificar o ODP.NET, Driver Gerenciado no Microsoft .NET Core no final do ano civil de 2017.
A Oracle pretende suportar o ODP.NET gerenciado no .NET Core nos sistemas operacionais Windows e no Oracle Linux. ODP.NET gerenciado pode suportar sistemas operacionais adicionais. A Oracle continuará avaliando o suporte para outras distribuições Linux e anunciará adições à lista de certificação futuramente. A Oracle não pretende certificar em versões anteriores ao Microsoft .NET Core 2.0. O .NET Core 2.0 contém vários resources que tornam a certificação ODP.NET gerenciada possível no framework

A partir deste artigo: http://www.oracle.com/technetwork/topics/dotnet/tech-info/odpnet-dotnet-core-sod-3628981.pdf

Atualizado: Beta lançado no ODP.NET Core

Como mencionado em outras respostas, a Oracle ainda não lançou um pacote para o seu cliente gerenciado, mas está previsto para o final deste ano.

No entanto, a partir do lançamento do .NET Standard 2.0, a biblioteca System.Data.OracleClient foi atualizada (disponível via NuGet). Obviamente, essa não é uma solução ideal, já que a biblioteca é obsoleta, mas lhe dá algo para trabalhar – e você pode simplesmente escrever um wrapper e trocá-lo pela biblioteca oficial do Oracle quando for lançado.

Com base na equipe Oracle .NET Eles lançaram um novo beta ODP .NET Core;

Você também pode encontrar aqui

Você deve excluir “dnxcore50” (Isso significa que seu projeto não é mais um aplicativo núcleo puro .net) do project.json no nó frameworks e tente novamente. Tanto quanto eu sei que você não pode se conectar ao oracle via núcleo .net por agora , talvez a verificação deste link pode ser útil

A Oracle acaba de publicar o provedor de dados oficial para .NET Core no nuget.

Eu instalei e parece funcionar muito bem!

finalmente, o dotConnect da devart para Oracle suporta o núcleo .net desde a versão “9.4.280”.

Fizemos isso configurando um servidor vinculado oracle e usando stored procedures que fazem chamadas para o servidor vinculado da Oracle a partir do servidor SQL. Você pode tentar isso. Você pode usar Openquery ou Exec .. Em [likedserver] para fazer as querys executar no lado do Oracle.