c# - studio - Cómo conectarse a una base de datos Oracle Conexión desde.Net Core
entity framework oracle visual studio 2017 (8)
Basado en el equipo de Oracle .NET. Han lanzado una nueva versión beta de ODP .NET Core;
También puedes encontrarlo https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core
Dentro de una biblioteca .netCore quiero conectarme a una base de datos Oracle. ¿Hay alguna manera de que pueda hacer eso todavía?
He intentado las sugerencias en otra publicación SO , pero no funciona, ¿quizás se haya eliminado desde? Como puede ver en mi proyecto.json, estoy tratando de usar "net461".
Actualmente estoy intentando usar Oracle.ManagedDataAccess.Client a través de la antigua ADO.Net. También sé que Oracle todavía no ha comprado un conector .netCore. Pero incluso allí no puedo hacer que funcione, se esfuerza por incluir los datos del sistema. Se incluyen errores cuando intento agregarlos.
Mi proyecto.json se ve así:
{
"version": "1.0.0-*",
"dependencies": {
"NETStandard.Library": "1.6.0",
"Oracle.ManagedDataAccess": "12.1.24160719",
},
"frameworks": {
"netstandard1.6": {
"imports": [
"dnxcore50",
"net461"
]
}
}
}
Así es como estaba tratando de hacerlo en este 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;
}
}
Sin embargo, lo anterior no se compila ya que no tiene System.Data, que estoy luchando por importar.
No estoy arraigado en ninguna forma particular de hacerlo, solo quiero la mejor opción razonable en este momento .
Como se mencionó en otras respuestas, Oracle aún no ha lanzado un paquete para su cliente administrado, pero está previsto para más adelante este año.
Sin embargo, a partir del lanzamiento de .NET Standard 2.0, la biblioteca System.Data.OracleClient se ha actualizado (disponible a través de NuGet). Obviamente, esta no es una solución ideal ya que esa biblioteca está obsoleta, pero le brinda algo con lo que trabajar, y puede escribir un contenedor y cambiarlo por la biblioteca oficial de Oracle cuando se publique.
Debería eliminar "dnxcore50" (esto significa que su proyecto ya no es una aplicación central .net pura) de project.json en el marco de frameworks y vuelva a intentarlo. Por lo que sé, no puede conectarse a Oracle a través de .net core POR AHORA , tal vez este enlace puede ser útil
Lo hemos hecho configurando un servidor vinculado a Oracle y utilizando procedimientos almacenados que realizan llamadas al servidor vinculado de Oracle desde el servidor SQL. Usted podría intentar eso. Puede usar Openquery o Exec .. En [likesserver] para hacer que las consultas se ejecuten en el lado de Oracle.
Oracle acaba de publicar el proveedor de datos oficial para .NET Core en nuget.
¡Lo instalé y parece funcionar bastante bien!
Oracle planea certificar ODP.NET, Managed Driver en Microsoft .NET Core hacia el final del año calendario 2017.
Oracle pretende admitir ODP.NET administrado en .NET Core en sistemas operativos Windows y Oracle Linux. Managed ODP.NET puede soportar sistemas operativos adicionales. Oracle continuará evaluando el soporte para otras distribuciones de Linux y anunciará adiciones a la lista de certificación en un futuro. Oracle no planea certificar en versiones anteriores a Microsoft .NET Core 2.0. .NET Core 2.0 contiene numerosas características que hacen posible la certificación ODP.NET administrada en el marco
De este artículo: http://www.oracle.com/technetwork/topics/dotnet/tech-info/odpnet-dotnet-core-sod-3628981.pdf
Actualizado: Beta lanzado https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core
por último, devart''s dotConnect para Oracle soporta el núcleo .net desde la versión "9.4.280".
Versión beta. Controlador administrado de .Net Core lanzado por Oracle a fines de enero de 2018 http://www.oracle.com/technetwork/topics/dotnet/downloads/net-downloads-160392.html . El formato admitido en el documento ahora es Win y Linux.
Nuget: https://www.nuget.org/packages/Oracle.ManagedDataAccess.Core
Otras alternativas antiguas con clientes de Oracle estándar / instantáneos:
- para .Net Core 2.0, recomiendo usar ericmend oracleClientCore-2.0: https://github.com/ericmend/oracleClientCore-2.0 . Nuget: dotNetCore.Data.OracleClient Lo usé con éxito en la plataforma Win y Linux. Hay mi pequeña muestra
- Alternativelly System.Data.OracleClient también funciona para 2.0 - vea @Owen post. Pero lo pruebo solo en la plataforma Win.
- Para .Net Core> = 1.0 puede usar el cliente LinqDan Oracle no oficial para .NET Core basado en el cliente Oracle de Mono https://github.com/LinqDan/oracleclientcore Nuget: Mono.Data.OracleClientCore .
Mi TestCore.csproj para la última alternativa:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp1.0</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Mono.Data.OracleClientCore" Version="1.0.0" />
</ItemGroup>
</Project>
Mi 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();
}
}
}
}