2010-08-05 7 views
6

Alle Demos von Visual Studio Lightswitch verwenden SQL-Server, ist es möglich, mit Visual Studio Lightswitch auf Daten von Oracle zuzugreifen?Kann Visual Studio Lightswitch eine Verbindung zu einer Oracle-Datenbank herstellen?

+0

siehe auch http://meta.stackexchange.com/questions/59759/what-should-the-tag-for- visual-studio-lightswitch-be –

+0

Ian: Ich habe eine Antwort für dich hinterlassen. Sie haben drei Optionen (1) Oracle ODP.Net 11.2 R4, (2) Drittanbieter-Treiber $$$ und (3) Open Source. @Matt Eisenberg war auf dem richtigen Weg, aber es gibt mehr Möglichkeiten. –

Antwort

5

Visual Studio Lightswitch kann über das Entity Framework zu einer Oracle-Datenbank beibehalten werden.

  1. Oracle Data Provider (ODP.Net)

    Oracle ODAC-Tools enthält den Oracle Data Provider (ODP.Net) für die Verwendung mit Visual Studio-Anwendungen. Der neueste Treiber von Oracle mit Unterstützung für Entity Framework 4.1 und "Model First".

    EDIT: Ich bin mir nicht sicher, ob es "Code-First" oder EF 4.2 unterstützt, also überprüfen Sie die Dokumentation. Das heißt, es ist kostenlos und von Oracle unterstützt, so würde ich dringend vorschlagen, hier zu starten, bevor Sie Ihre eigenen rollen oder Open-Source-Provider/Treiber verwenden.

    Download ODP.Net 11.2.0.3

    EF Tutorial w/ ODP.Net

    Hinweise: "11.2.0.2 Release 4" wird es geschnitten, aber "11.2.0.3 ist" out und stabiler.

  2. Treiber von Drittanbietern sind käuflich zu erwerben:

    docConnect for Oracle

    DevArt's ADO.Net Provider for Oracle

  3. Open Source Anbieter

    Darüber hinaus gibt es einige Open-Source-Optionen zur Verfügung - einen fand ich o n Github:

    https://github.com/object/NorthwindOData


Tutorial auf MSDN: How to Connect Lightswitch to EF 4.1

+0

Gibt es jede Version der Oracle ODAC Tools, die nicht in der Beta-Version ist, aber die Versandversion von .net vollständig übertrifft? –

+0

Ja. Ich habe vergessen, meine Antwort zu bearbeiten - 11.2.0.3 ist vollständig freigegeben, nicht Beta ... und es unterstützt Entity Framework 4.1 - Vorbehalt: es unterstützt "Modell zuerst" und "4.1" ... Sie müssten Dokumentation lesen oder Fragen Sie den Support, ob 4.1 und Code-First-Ansätze gut sind. –

7

Ja, wenn Sie einen Drittanbieter für das Entity-Framework erhalten können. Diese Frage habe ich diese Woche bei VSLive gestellt.

+0

Wie viel kostet der Drittanbieter für das Entity Framework? Und muss jemand wissen, wie man programmiert, um es in Lightswitch einzuhängen? –

+0

http://web.datadirect.com/products/net/net-for-oracle/index.html. Nicht sicher über den zweiten Teil Ihrer Frage. –

+0

Soweit der zweite Teil, glaube ich, dass, sobald es auf dem Computer der Person installiert ist, sie nur als eine Datenquelle wählen. Sie müssen die Verbindungsinformationen kennen, als ob sie eine andere Datenquelle verwenden würden. Aber sollte Programmierkenntnisse nicht benötigen, um es anzuschließen. –

0

Die LightSwitch training kit enthält eine Übung zur Verwendung alternativer Datenquellen über WCF RIA-Dienste.

Sie könnten das nützlich finden.

3

Ich habe die neueste ODAC 11.2 Release 4 (11.2.0.3.0) verwendet, die Entity Framework unterstützt, und es funktioniert gut.

Wenn Sie diesen Fehler erhalten, „Innere Ausnahmemeldung: Die Verbindung ist bereits Teil einer lokalen oder eine verteilten Transaktion“

Sie das Problem, indem nach dem zweiten Beitrag von BScholz lösen kann, https://forums.oracle.com/forums/thread.jspa?threadID=2263095

Grundsätzlich , müssen Sie SaveChanges_Excuting und SaveChanges_Executed für die Oracle-Datenquelle implementieren.

  1. Wechseln Sie zu "Dateiansicht" (LightSwitch zeigt standardmäßig "Logical View" an).
  2. Hinzufügen eines Verweises auf "System.Transactions" im Serverprojekt.
  3. Zurück zur "Logischen Ansicht"
  4. Klicken Sie mit der rechten Maustaste auf den Datenquellennamen und klicken Sie auf "Code anzeigen", um die partielle Klasse zu bearbeiten.
  5. Copy-and-paste den Code unten:

    private TransactionScope _tscope; 
    
    partial void SaveChanges_Executing() 
    { 
        _tscope = new TransactionScope(TransactionScopeOption.Required, 
        new TransactionOptions 
        { 
         IsolationLevel = System.Transactions.IsolationLevel.ReadCommitted 
        }); 
    } 
    
    partial void SaveChanges_Executed() 
    { 
        _tscope.Complete(); 
        _tscope.Dispose(); 
    } 
    
Verwandte Themen