Entity Framework Core unter Xamarin.Forms

Von Eugen Richter

Mit Xamarin.Forms 2.4 ist Xamarin nun .Net Core kompatibel (sogar zu Version 2.0). Das größte Manko, meiner Meinung nach, war bis jetzt die Handhabung der lokalen Daten in einer Datenbank (meist SQLite). Die vorhandenen Bibliotheken (SQLite.Net-PCL und sqlite-net-pcl) sind leider alles andere als entwicklerfreundlich. Zumindest für C#-Entwickler, die vom Desktop-System kommen und Entity Framework 6, NHibernate und weitere kennen.

Nun gibt es mit Entity Framework Core eine Alternative für Xamarin. Der Einstieg ist zwar nicht ganz so einfach, wie mit Entity Framework 6, aber es lohnt sich. Vor allem fehlen bei .Net Core aktuell die Tools (insbesondere visuelle) für die Generierung / Visualisierung und Migration. Das meiste muss über die Kommandozeile gelöst werden.

Weiterlesen …

Git Tag als Version bei FAKE Builds

Von Eugen Richter

Seit einiger zeit nutze ich FAKE als Build-Script für meine .Net Projekte (nicht nur Privat). Außerdem nutze ich git-flow als Branching-Model für die Entwicklung. Somit erzeuge ich die neuen Versionsnummern beim Beenden von release- und hotfix-Branches. Diese Information will ich nicht jedes mal auch beim CI-Server nachtragen, sondern im Idealfall direkt aus dem jeweiligen Tag ableiten. Dazu habe ich nun ein kleines F# Snippet geschrieben (Link zum Quellcode ist in der Seitenleiste), der mir die Arbeit erleichtert.

Da mein F#-Kenntnisse momentan nur rudimentär sind, ist der Feedback ausdrücklich gewünscht.

Weiterlesen …

Entity Framework und Löschen aus einer 1:n Collection

Von Eugen Richter

Beim direkten Löschen eines Kindselementes aus der Elternelement heraus mit parent.Childs.Remove(child); löscht zwar die Beziehung zwischen den Beiden (Child.Parent = null), aber nicht das Kindselement selbst. Das führt beim Speichern unweigerlich zu einem Fehler, wenn in der Datenbankdefinition das Foreign Key nicht NULL sein darf. In diesem Tutorial zeige ich zwei gangbare Lösungen, wie man dieses Problem umschiffen kann. Hoffentlich wird es bald in EF möglich sein, dieses Verhalten auch als Standard zu konfigurieren.

Weiterlesen …