EF Core 2.0 w Xamarin Forms – Szybki start

Posted by Maciej Gos on Monday, September 25, 2017

TOC

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.
[code lang=”csharp”]
public class Session
{
public int Id { get; set; }
public DateTime Date { get; set; }
public string TrackName { get; set; }
public List 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; }
}
[/code]

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.
[code lang=”csharp”]
public class RankingsDbContext : DbContext
{
public DbSet Sessions { get; set; }
public DbSet Players { get; set; }

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

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
var dbPath = DependencyService.Get().GetLocalPath(“rankingsDb.db3”);
optionsBuilder.UseSqlite($“Filename={dbPath}");
}
}
[/code]

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.
[code lang=”csharp”]
context.Sessions.Add(newSession);
context.Players.AddRange(newSession.Players);
[/code]

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.

Maciej Gos

真诚赞赏,手留余香

使用微信扫描二维码完成支付


comments powered by Disqus