SQL-Schema in F # verwalten

8

Wegen des Vorhandenseins von Typanbietern für den Zugriff auf SQL-Daten in F # gibt es nicht viel konzentrieren Sie sich auf die Verwendung von ORMs, Mikro oder anders. Ich kann definitiv die Logik dahinter sehen.

Es scheint auch so zu sein, dass viele Beispiele für die Verwendung von F # zum Spielen mit relationalen Daten darin bestehen, sie in bestehende große Datenbanken zu stecken, die scheinbar an anderer Stelle erstellt wurden.

Es fühlt sich an, als gäbe es hier eine kleine Lücke: Gibt es eine gute Möglichkeit, Schema-Erstellung und -Migration direkt aus F # zu verwalten? Das oben verlinkte Beispiel schlägt vor, das Skript zum manuellen Erstellen von Schemas als ersten Schritt auszuführen. Ist das die einzige Option?

Ich habe vor kurzem ein kleines Projekt gestartet, das von Anfang an F # ist, und ich versuche, einige Daten in einer relationalen Datenbank (sqlite für jetzt) ​​zu speichern. Ich habe kein existierendes Schema zu erforschen, ich entwerfe von Grund auf neu. Gibt es eine freundlichere oder idiomatischere Art, mein Schema (Erstellung und dann Migration) in F # zu verwalten?

?     
eddie.sholl 26.04.2015, 23:15
quelle

2 Antworten

4

Sie können Entity Framework mit F # verwenden und erhalten daher die Migrations-API, mit der es geliefert wird, aber ich habe es in der Praxis als sehr schmerzhaft empfunden - all Ihre Entitätsklassen benötigen member val get set style-Eigenschaften (glaube ich) und verschiedene andere Kleinigkeiten. Jamie Dixon hat vor einigen Monaten einen Blogeintrag dazu gemacht, zu dem ich gerade experimentiert habe - ich habe es nicht genossen!

Um ehrlich zu sein, obwohl dies keine gute Antwort für Sie ist, wenn Sie nach DB-Schemamanagement in F # fragen - ich würde empfehlen, dass Sie etwas wie VS-Datenbankprojekte verwenden, um Ihr Schema außerhalb Ihres Codes zu verwalten , und verwenden Sie (ja) einen der SQL Type Provider, um Daten innerhalb Ihrer Anwendung zu verwalten.

Wenn Sie sich für ein "Schema-Migration in Code" -System entscheiden, spielt EF nach meiner Erfahrung viel besser mit C #, so dass Sie theoretisch mit z. ein C # / EF-Datenzugriffsprojekt, auf das von Ihrem F # -Anwendungscode verwiesen wird.

Entschuldigung.

    
Isaac Abraham 27.04.2015, 22:57
quelle
0

Ich habe versucht, eine Lösung dafür zu finden, und ich bin mehr und mehr geneigt, zu versuchen, auf die Grundlagen zurückzugreifen, wenn es um SQL-Datenbanken geht. Einer der wichtigsten Teile, die im Buch Refactoring Databases beschrieben werden, sind Migrationen. Ein Tool, das die Arbeit mit Migrationen unterstützt, löst viele Probleme, solange Sie akzeptieren können, dass alle Skripte in einfacher SQL geschrieben werden.

Ein Tool, das ich für den .NET-Stack gefunden habe, ist Rob Reynolds Roundhouse . Ich muss es noch ausprobieren, aber es scheint vielversprechend, wenn auch etwas veraltet.

    
8DH 08.12.2016 18:10
quelle