Вы находитесь на странице: 1из 4

Разработка мобильных приложений.

Основы работы с Entity Framework Core и Xamarin.


Цель работы: создать мобильное приложение для хранения и
верификации учетных данных пользователей с применением Xamarin Forms
и Entity Framework Core.
Оборудование: ПК.
Программное обеспечение: Visual Studio 2022, Word.
Теоретическая часть
Чтобы создавать приложения Xamarin.Forms с помощью EF Core,
установите пакеты целевых поставщиков базы данных EF Core, с которыми
вы будете работать, во все проекты в решении Xamarin.Forms. В этом
руководстве используется поставщик SQLite.
В каждом из проектов решения Xamarin.Forms требуется указанный ниже
пакет NuGet:
Microsoft.EntityFrameworkCore.Sqlite

Каждая таблица в базе данных SQLite, доступ к которой


осуществляется через EF Core, моделируется в классе. В этом примере
используются два класса: Blog и Post. Они находятся в папке Models.
Классы модели состоят только из свойств, которые моделируют
столбцы в базе данных:
using System;
using System.Collections.Generic;

namespace EFGetStarted
{
public class Blog
{
public int BlogId { get; set; }
public string Url { get; set; }

public List<Post> Posts { get; set; } = new List<Post>();


}
}

1
Свойство Posts определяет связь "родитель-потомок" между Blog и
Post.
Модель таблицы Post
using System;
namespace EFGetStarted
{
public class Post
{
public int PostId { get; set; }
public string Title { get; set; }
public string Content { get; set; }

public int BlogId { get; set; }


public Blog Blog { get; set; }
}
}

Свойства BlogId и Blog определяют обратные связи с родительским


объектом Blog для экземпляра Post.
После создания моделей необходимо определить контекст данных,
который содержит информацию о том, как сопоставить объекты модели с
таблицами и столбцами в базе данных, а также как выполнять запросы на
основе этих объектов.
В нашем случае класс BloggingContext находится в папке Services и
наследуется от класса EF Core DbContext. DbContext используется для
группирования запросов к базе данных и изменений:
using System;
using System.IO;
using Microsoft.EntityFrameworkCore;
using Xamarin.Essentials;

namespace EFGetStarted
{
public class BloggingContext : DbContext
{
public DbSet<Blog> Blogs { get; set; }
public DbSet<Post> Posts { get; set; }

2
public BloggingContext()
{
SQLitePCL.Batteries_V2.Init();

this.Database.EnsureCreated();
}

protected override void OnConfiguring(DbContextOptionsBuilder


optionsBuilder)
{
string dbPath = Path.Combine(FileSystem.AppDataDirectory,
"blogs.db3");

optionsBuilder
.UseSqlite($"Filename={dbPath}");
}
}
}

Оба свойства в этом классе типа DbSet служат для работы с базовыми
таблицами, представляющими блоги и записи. SQLitePCL.Batteries_V2.Init()
требуется в конструкторе для инициации SQLite в iOS. Функция
OnConfiguring задает расположение базы данных SQLite на физическом
устройстве.
Для выполнения запросов к базе данных используется язык
интегрированных запросов (LINQ). В Entity Framework Core есть встроенный
механизм для работы с LINQ, который позволяет создавать запросы на языке
программирования, а не на SQL, что делает код более читаемым и удобным
для сопровождения.
Вот пример кода для вывода информации из таблицы Blogs:
using (var context = new BloggingContext())
{
var blogs = context.Blogs.ToList();
foreach (var blog in blogs)
{
Console.WriteLine(\$"{blog.Title} - {blog.Url}");
}
}

3
В этом коде мы создаем новый экземпляр контекста BloggingContext и
используем его для получения списка блогов (var blogs = context.Blogs.-
ToList()). Затем мы перебираем все блоги и выводим их название и URL на
консоль (Console.WriteLine($"{blog.Title} - {blog.Url}")). Директива using
используется для обеспечения того, чтобы ресурсы, которые были выделены
в блоке кода, были освобождены при завершении его работы. В данном
случае она гарантирует, что контекст базы данных будет корректно закрыт и
ресурсы, которые он использует, будут освобождены.

Практическая часть
Разработка мобильного приложения на Xamarin Forms с
использованием Entity Framework Core.
На основе проекта из предыдущих работ, добавьте ниже описанный
функционал для вашего мобильного приложения Xamarin Forms и базы
данных SQLite. Для подключения к БД используйте Entity Framework Core.
Требования:
1. Создайте локальную базу данных SQLite (используйте SQL запрос). В
БД необходимо добавить таблицу Users, в которой должны быть поля
для хранения логинов и паролей пользователей.
2. Реализуйте связь вашего мобильного приложения с базой данных при
помощи Entity Framework Core.
3. Напишите код, осуществляющий проверку введенных пользователем
данных на корректность. Для этого выполнить верификацию
введенных данных с информацией, хранящейся в базе данных.
4. В случае успешной проверки вывести всплывающее сообщение “Вы
авторизовались!” с помощью DisplayAlert. В противном случае вывести
сообщение “Введены неверные данные”.
5. Оформите отчет о проделанной работе.

Вам также может понравиться