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.
真诚赞赏,手留余香
使用微信扫描二维码完成支付
comments powered by Disqus