Visual Studio 13 und Firebird

  • Firebird und das EntityFramework 6 Vorbereitungen: Will man das Entity Framework mit Firebird verwenden, braucht man eine handvoll zusätzlicher Dinge damit das wirklich rund läuft.
     
    1. DDEX Provider: Die sind notwendig, damit Firebird-Datenbanken in Visual Studio (also der IDE) unterstützt werden. Den Download gibt es hier
    2. Entity Framework: Das EF ist nicht mehr Bestandteil des .NET Frameworks sondern wird von diesem unabhängig weiter entwickelt und zur Verfügung gestellt. Die aktuelle Version kann über NuGet herunter geladen werden
    3. Firebird Entity Framework Provider: Auch dieses Teil kann einfach über NuGet in das aktuelle Projekt eingefügt werden
     
    Damit aber alle Möglichkeiten des EF zur Verfügung stehen braucht es noch die EF-Tools, die man über die Microsoft-Seite herunterladen muss. Diese braucht es neben VS2012 auch im VS2013.
  • Der Verbindungsdialog in VisualStudio schließt sich beim ersten Tastendruck: Hat man endlich alles installiert, geht es daran eine Verbindung zu einer FirebirdDB zu öffnen. DB-Explorer aufrufen, Datenbank registrieren und den Firebird-NET Provider aufrufen. Dann öffnet sich ein bekannter Verbindungsdialog und schwubs - beim ersten Tastendruck verschwindet das Teil wieder - ohne Fehlermeldung...
     
    Grund dafür ist, dass eine alte Version des Firebird.NET Provider noch in den Konfigurationsdateien rumgeistert - und das blöde daran ist, man sieht es erst auf den zweiten Blick...
    Lösung: VS IDE schließen und unter C:\Windows\Microsoft.NET\Framework\v4.0.30319\config bzw. unter Framework64 bzw. einer anderen .NET Version die Machine.config in einem Editor öffnen (Achtung: Admin-Rechte benötigt!). Dort sucht man dann nach Firebird und findet so einen Eintrag:
     
      <system.data>
        <DbProviderFactories>
          <add name="Microsoft SQL Server Compact Data Provider 4.0" invariant="System.Data.SqlServerCe.4.0" description=".NET Framework Data Provider for Microsoft SQL Server Compact" type="System.Data.SqlServerCe.SqlCeProviderFactory, System.Data.SqlServerCe, Version=4.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"/>
          <add name="FirebirdClient Data Provider" invariant="FirebirdSql.Data.FirebirdClient" description=".NET Framework Data Provider for Firebird" type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient, Version=4.5.0.0, Culture=neutral, PublicKeyToken=3750abcc3150b00c"/></DbProviderFactories>
     
    In der selben Zeile vom FirebirdClient Data Provider ist allerdings noch ein zweiter Eintrag (einfach mal in der Zeile ganz ans Ende gehen). Hier muss man dann den vorderen Eintrag bzw. den Eintrag mit der falschen Version raus löschen.

  • Kein kompatibler EF-Treiber gefunden: Da ich nun schon mehrfach in die Falle getappt bin:
     
    Man erstelle ein neues Projekt in VS, füge das EF6.1 und die Firebird-Treiber hinzu. Über "Hinzufügen" ein ADO.NET Entity-Model erstellen. Dann ein bel. Modell auswählen, die Datenbankverbindung wählen und dann kommt ein Dialog mit der Aufforderung die Version des EF-Frameworks zu wählen. Es ist hilfreich, den Text ganz zu lesen, insbesondere den letzten Satz:
    Nach dem Hinzufügen der NuGet-Pakete sollte das Projekt einmal erstellt werden - dann funktionieren auch alle Assistenten....!

  • VS-Tool DPack