EF Core 2.0 w Xamarin Forms - Szybki start

EF Core 2.0 w Xamarin Forms – Szybki start

Programiści Xamarin często wykorzystują w swoich projektach lokalne bazy danych. Tutaj z pomocą przychodzą nam frameworki O/RM takie jak Entity Framework Core.

Entity Framework Core jest cross platformową wersją popularnego framework O/RM ze świata Microsoft. Za jego pomocą możemy w prosty sposób tworzyć warstwę dostępu do danych. Udostępnia on również wiele bardziej zaawansowanych funkcjonalności.

Niestety wersja 1.0 oferowała nam niewiele ale teraz od paru tygodni mamy nową jeszcze ciepłą wersję 2.0.

.NET Standard 2.0

Żeby zacząć swoją pracę z EF Core 2.0 musimy na początek stworzyć projekt .Net Standard 2.0 jest to wymagana zależność dla EF Core.

Nie będę się tutaj zagłębiał w niuanse związane z migracją do .NET Standard 2.0 ponieważ już zostało na ten temat dużo powiedziane np. tutaj Snack Pack 15: Upgrading to Xamarin.Forms to .NET Standard.

Szybki start

Żeby zacząć z EF Core należy na początek zainstalować pakiet NuGet Microsoft.EntityFrameworkCore.Sqlite 2.0.0.

Pakiet należy dodać do wszystkich naszych projektów.

Model

Nasza aplikacja będzie obsługiwała Sesję gry w której może być kilku graczy i właśnie takie informacje będziemy chcieli przechować w naszej bazie danych.

    public class Session
    {
		public int Id { get; set; }
		public DateTime Date { get; set; }
        public string TrackName { get; set; }
        public List<Player> Players { get; set; }
    }

    public class Player
    {        
        public int Id { get; set; }
        public int SessionID { get; set; }
		public string Name { get; set; }
        public string Time { get; set; }
    }

DbContext

Kolejnym naszym krokiem jest stworzenie DbContext. Jest to element centralny EF Core pełniący rolę repozytorium i obsługujący sesję z bazą danych.

    public class RankingsDbContext : DbContext
    {
        public DbSet<Session> Sessions { get; set; }
        public DbSet<Player> Players { get; set; }

        public RankingsDbContext()
        {
            Database.EnsureCreated();
        }

        protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            var dbPath = DependencyService.Get<IFileHelper>().GetLocalPath("rankingsDb.db3");
            optionsBuilder.UseSqlite($"Filename={dbPath}");
        }
    }

Co dalej

Mamy już stworzone nasze modele, oraz DbContext. Teraz należy wykonać jakieś zapytanie na bazie danych.

W tym celu robimy zapytanie i gotowe.

                context.Sessions.Add(newSession);
                context.Players.AddRange(newSession.Players);

Podsumowanie

Jak widzicie użycie EF Core w aplikacjach Xamarin.Forms stało się teraz proste i przyjemne. W następnych postach przyjrzymy się kolejnym nowością, oraz ich zastosowaniom w aplikacjach mobilnych.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *