• 07/07/2020
  • 5 minute de citit

In acest articol

In acest tutorial, creati o aplicatie Xamarin.Forms care efectueaza accesul la date impotriva unei baze de date SQLite utilizand Entity Framework Core.

Puteti urma tutorialul utilizand Visual Studio pe Windows sau Visual Studio pentru Mac.

Conditii prealabile

Instalati unul dintre cele de mai jos:

  • Visual Studio 2019 versiunea 16.3 sau o versiune ulterioara cu aceasta sarcina de lucru:
    • Dezvoltare mobila cu .NET
  • Visual Studio pentru Mac

Aceasta documentatie ofera instructiuni detaliate de instalare pas cu pas pentru fiecare platforma.

Descarcati si rulati exemplul de proiect

Pentru a rula si a explora acest exemplu de aplicatie, descarcati codul pe GitHub.

Odata descarcat, deschideti fisierul solutiei EFGettingStarted.sln in Visual Studio sau Visual Studio pentru Mac si rulati aplicatia pe platforma la alegere.

Cand aplicatia porneste prima data, va popula baza de date SQLite locala cu doua intrari reprezentand bloguri.

Faceti clic pe butonul Adaugare din bara de instrumente.

Va aparea o noua pagina care va permite sa introduceti informatii despre un nou blog.

Completati toate informatiile si faceti clic pe Salvare din bara de instrumente. Noul blog va fi salvat in baza de date SQLite a aplicatiei si va aparea in lista.

Puteti face clic pe una dintre intrarile blogului din lista si puteti vedea orice postari pentru blogul respectiv.

Faceti clic pe Adaugare in bara de instrumente.

Apare apoi o pagina care va permite sa completati informatii despre o noua postare pe blog.

Completati toate informatiile si faceti clic pe Salvare in bara de instrumente.

Noua postare va fi asociata postarii de blog pe care ati facut clic intr-un pas anterior si va fi salvata in baza de date SQLite a aplicatiei si va fi afisata in lista.

Reveniti la pagina listei de bloguri. Si faceti clic pe Stergeti totul in bara de instrumente. Toate blogurile si postarile corespunzatoare vor fi apoi sterse din baza de date SQLite a aplicatiei.

Exploreaza codul

Urmatoarele sectiuni va vor conduce prin codul din exemplul de proiect care citeste, creeaza, actualizeaza si sterge date dintr-o baza de date SQLite utilizand EF Core cu Xamarin.Forms.

Se presupune ca sunteti familiarizati cu subiectele Xamarin.Forms despre afisarea datelor si navigarea intre pagini.

Important

Entity Framework Core foloseste reflectia pentru a invoca functii pe care linkerul Xamarin.iOS le poate elimina in timp ce se afla in configuratii ale modului Release . Puteti evita acest lucru in unul din cele doua moduri.

  • Primul este sa adaugati –linkskip System.Core la argumentele suplimentare mtouch din optiunile iOS Build .
  • Alternativ, setati comportamentul Xamarin.iOS Linker la Nu conectati in optiunile de construire iOS . Acest articol explica mai multe despre linkerul Xamarin.iOS, inclusiv modul de setare a comportamentului pe Xamarin.iOS. (Aceasta abordare nu este ideala, deoarece poate duce la respingerea din magazin).

Pachete NuGet Entity Framework Core

Pentru a crea aplicatii Xamarin.Forms cu EF Core, instalati pachetul pentru furnizorii de baze de date EF Core pe care doriti sa ii vizati in toate proiectele din solutia Xamarin.Forms. Acest tutorial utilizeaza furnizorul SQLite.

Urmatorul pachet NuGet este necesar in fiecare dintre proiectele din solutia Xamarin.Forms.

  • Microsoft.EntityFrameworkCore.Sqlite

Clase de modele

Fiecare tabel din baza de date SQLite accesata prin EF Core este modelat intr-o clasa. In acest esantion, sunt utilizate doua clase: Blog si Postare care pot fi gasite in folderul Modele.

Clasele de modele sunt compuse doar din proprietati, care modeleaza coloanele din baza de date.

  • Blog.cs

    utilizarea sistemului; folosind System.Collections.Generic; namespace EFGetStarted {public class Blog {public int BlogId {get; a stabilit; } public string Url {get; a stabilit; } public list <Post> Postari {get; a stabilit; } = lista noua <Post> (); }}

  • Proprietatea Postari defineste o relatie parinte-copil intre Blog si Postare.

  • Post.cs

    utilizarea sistemului; namespace EFGetStarted {public class Post {public int PostId {get; a stabilit; } sir public Titlu {get; a stabilit; } sir public Continut {get; a stabilit; } public int BlogId {get; a stabilit; } public Blog Blog {get; a stabilit; }}}

  • Proprietatile BlogId si Blog se refera la obiectul Blog parinte pentru instanta Postarii.

Contextul datelor

Clasa BloggingContext se afla in folderul Servicii si mosteneste din clasa EF Core DbContext. Un DbContext este utilizat pentru a grupa interogarile si modificarile bazei de date.

utilizarea sistemului; folosind System.IO; folosind Microsoft.EntityFrameworkCore; folosind Xamarin.Essentials; namespace EFGetStarted {public class BloggingContext: DbContext {public DbSet <Blog> Blogs {get; a stabilit; } public DbSet <Post> Postari {get; a stabilit; } public BloggingContext () {SQLitePCL.Batteries_V2.Init (); this.Database.EnsureCreated (); } override protected void OnConfiguring (DbContextOptionsBuilder optionsBuilder) {string dbPath = Path.Combine (FileSystem.AppDataDirectory, “blogs.db3”); optionsBuilder .UseSqlite ($ “Filename = {dbPath}”); }}}

  • Ambele proprietati din aceasta clasa de tip DbSet sunt utilizate pentru a opera pe tabelele subiacente reprezentand Bloguri si Postari.
  • SQLitePCL.Batteries_V2.Init () este necesar in constructor pentru a initia SQLite pe iOS.
  • Functia OnConfiguring seteaza locatia bazei de date SQLite pe dispozitivul fizic.

Creati, cititi, actualizati si stergeti

Urmatoarele sunt cateva instante din aplicatie in care EF Core este utilizat pentru a accesa SQLite.

Citit

  • Returneaza toate inregistrarile.
    • Functia OnAppearing a BlogsPage.xaml.cs returneaza toate inregistrarile Blogului si le stocheaza intr-o variabila List.

folosind (var blogContext = new BloggingContext ()) {var theBlogs = blogContext.Blogs.ToList (); }

  • Returnati inregistrari specifice.
    • Functia OnAppearing a PostsPage.xaml.cs returneaza inregistrarile Post care contin un BlogId specific.

using (var blogContext = new BloggingContext ()) {var postList = blogContext.Posts .Where (p => p.BlogId == BlogId) .ToList (); }

Crea

  • Introduceti o inregistrare noua.
    • Functia Save_Clicked a AddBlogPage.xaml.cs introduce un nou obiect Blog in baza de date SQLite.

var blog = blog nou {Url = blogUrl.Text}; folosind (var blogContext = new BloggingContext ()) {blogContext.Add (blog); asteapta blogContext.SaveChangesAsync (); }

Actualizati

  • Actualizati o inregistrare existenta.
    • Functia Save_Clicked a AddPostPage.xaml.cs actualizeaza un obiect Blog existent cu o noua postare.

var newPost = new Post {BlogId = BlogId, Content = postCell.Text, Title = titleCell.Text}; using (var blogContext = new BloggingContext ()) {var blog = await blogContext .Blogs .FirstAsync (b => b.BlogId == BlogId); blog.Posts.Add (newPost); asteapta blogContext.SaveChangesAsync (); }

Sterge

  • Stergeti toate inregistrarile cu inregistrari in cascada catre copii.
    • Functia DeleteAll_Clicked din BlogsPage.xaml.cs sterge toate inregistrarile Blog din baza de date SQLite si in cascada sterge toate inregistrarile Postare copil copil.

folosind (var blogContext = new BloggingContext ()) {blogContext.RemoveRange (blogContext.Blogs); asteapta blogContext.SaveChangesAsync (); }

Pasii urmatori

In acest inceput, ati invatat cum sa utilizati o aplicatie Xamarin.Forms pentru a accesa o baza de date SQLite folosind Entity Framework Core.

Alte subiecte de baza ale cadrului de entitati de interes pentru dezvoltatorii Xamarin:

  • Configurarea unui DbContext
  • Aflati mai multe despre expresiile de interogare LINQ
  • Configurati modelul pentru a specifica lucruri precum lungimea necesara si maxima

video hard martina smeraldi malena la pugliese il film
valeria porn malena la pugliese il film
malena vs rocco malena la pugliese infermiera
italian pirn malena la pugliese interracial
italian porno streaming malena la pugliese max felicitas
martina smeraldi hot malena la pugliese naked
morena con il suo taxxi malena la pugliese nuda
porno 100 italiano malena la pugliese nude
fica xxx malena la pugliese nuovi video
malena la pugliese interracial malena la pugliese nuovo porno
malena max malena la pugliese nuovo video
super cazzi porno malena la pugliese orgia
taxi xxx malena la pugliese orgia
michelle ferrari porno italiano malena la pugliese por
porn streaming italian malena la pugliese porm
rocco siffredi fucking malena la pugliese pormo
casting alla italiana streaming malena la pugliese porn
italian xxx movie malena la pugliese porn
solo figa italiana malena la pugliese porn hub
martina vs malena malena la pugliese porn tube