2016-07-08 2 views
2

Ich versuche, von ASP.NET Core RC1 zu 1.0.0-preview2 zu verschieben, aber Probleme mit Oracle-verwalteten Treiber, der zuvor funktionierte. Ich erhalte einen folgenden Fehler versuchen, eine neue OracleConnection zu erstellen:Kann Oracle nicht verwaltete Treiber in ASP.NET Core 1 App verwenden

Fehler CS0012 Der Typ ‚DbConnection‘ in einer Baugruppe definiert ist, die nicht referenziert ist. Sie müssen einen Verweis auf die Assembly 'System.Data, Version = 4.0.0.0, Culture = neutral, PublicKeyToken = b77a5c561934e089' hinzufügen. Ludens.Data..NETCoreApp, Version = v1.0 16 Aktive

Hier ist ein Code, wo ich es verwenden:

using System; 
using Oracle.ManagedDataAccess.Client; 
using Microsoft.Extensions.Options; 
using Ludens.Common; 
using System.Data; 

namespace Ludens.Data 
{ 
    public class LegacyContext : IDisposable 
    { 
    public IDbConnection Connection { get; } 

    public LegacyContext(IOptions<LudensSettings> options) 
    { 
     var appSettings = options.Value; 
     Connection = new OracleConnection(appSettings.Oracle.Connection); 
     Connection.Open(); 
    } 

    public void Dispose() 
    { 
     Connection.Dispose(); 
    } 
    } 
} 

Auch hier ist mein package.json:

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
    "Microsoft.NETCore.App": { 
     "version": "1.0.0", 
     "type": "platform" 
    }, 
    "Dapper": "1.50.0", 
    "Oracle.ManagedDataAccess": "12.1.24160419", 
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0", 
    "Ludens.Common": "1.0.0" 
    }, 

    "frameworks": { 
    "netcoreapp1.0": { 
     "imports": [ 
     "dotnet5.6", 
     "portable-net45+win8", 
     "net451" 
     ] 
    } 
    } 
} 

Ich habe das Gefühl, dass ich falsch Abhängigkeiten angeben, aber herauszufinden, was ich vermisse. Bitte um Rat.

+1

Oracle meldet noch nicht .NET Core-Unterstützung, und Microsoft plant, später Unterstützung hinzuzufügen. Derzeit können Sie nur DevArt Bibliothek zu verbinden, wenn Sie zielen möchten, netcoreapp1.0 –

+0

Vielen Dank für die schnelle Antwort @LexLi, Microsoft versucht, besser, aber immer etwas fehlt :) – vivanov

+0

mit Atem auf das warten. Irgendeine Idee, wie man einen Verbinder für Java schreibt? Vielleicht kann ich etwas zum Kernprojekt .net beitragen. – SoftwareSavant

Antwort

3

Wie von @LexLi bemerkt wurde, unterstützt Oracle noch nicht .net core, so dass Sie netcoreapp1.0 nicht erreichen können.

jedoch sind, wenn Sie Windows-Plattform-Targeting, können Sie einfach ein unterstütztes .net Framework Ziel:

"frameworks": { 
    "net451": { } 
} 

Dies wird zumindest können Sie in .net Kern entwickeln, und wenn Oracle Unterstützung tut ankommen, Upgrade sollte nur eine Frage der Änderung Ihres Projekts sein.json.

Hinweis: Wenn Sie das Entity Framework 7 für Oracle verwenden möchten, funktioniert dies immer noch nicht. Sie müssen auf eine unterstützte Bibliothek warten.

0

Ich bekam diesen DbConnection Fehler auch. Was für mich funktionierte ist das Hinzufügen der Referenz zu System.Data, was im Grunde der Fehler sagt Ihnen zu tun. Es hat eine Weile gedauert, bis ich es herausgefunden hatte.

Also kurz gesagt:

  • Rechtsklick auf "Verweise" des Projekts.
  • Klicken Sie auf "Referenz hinzufügen ..."
  • Wählen Sie aus .NET Framework 4.6.1 (oder ähnlich) "System.Data" und klicken Sie auf OK.
  • VS verarbeitet die Änderungen und die Fehler verschwinden.
Verwandte Themen