🗊Презентация Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов

Нажмите для полного просмотра!
Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №1Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №2Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №3Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №4Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №5Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №6Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №7Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №8Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №9Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №10Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №11Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №12Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №13Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №14Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №15Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №16Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №17Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №18Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №19Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №20Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №21Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №22Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №23Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №24Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №25Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов, слайд №26

Содержание

Вы можете ознакомиться и скачать презентацию на тему Работа с данными в Entity Framework Core. Проектирование и разработка веб-сервисов. Доклад-сообщение содержит 26 слайдов. Презентации для любого класса можно скачать бесплатно. Если материал и наш сайт презентаций Mypresentation Вам понравились – поделитесь им с друзьями с помощью социальных кнопок и добавьте в закладки в своем браузере.

Слайды и текст этой презентации


Слайд 1





Работа с данными в Entity Framework Core
Проектирование и разработка веб-сервисов
Описание слайда:
Работа с данными в Entity Framework Core Проектирование и разработка веб-сервисов

Слайд 2





Вводные понятия
Анемичные и толстые модели
Модели представлений
Привязка модели
Состояние модели
Источники привязки модели
Описание слайда:
Вводные понятия Анемичные и толстые модели Модели представлений Привязка модели Состояние модели Источники привязки модели

Слайд 3





Доп. материал по Entity Framework
https://metanit.com/sharp/entityframeworkcore/
https://metanit.com/sharp/aspnet5/12.1.php
Описание слайда:
Доп. материал по Entity Framework https://metanit.com/sharp/entityframeworkcore/ https://metanit.com/sharp/aspnet5/12.1.php

Слайд 4





Понятие Entity Framework Core
Entity Framework представляет прекрасное ORM-решение, которое позволяет автоматически связать обычные классы языка C# с таблицами в базе данных. Entity Framework Core нацелен в первую очередь на работу с СУБД MS SQL Server, однако поддерживает также и ряд других СУБД. В данном случае мы будем работать с базами данных в MS SQL Server.
По умолчанию в проекте библиотеки Entity Framework отсутствуют, и их надо добавить. Это можно сделать разными способами:
через Nuget, 
через Package Manager Console
вписав нужную зависимость в project.json.
Описание слайда:
Понятие Entity Framework Core Entity Framework представляет прекрасное ORM-решение, которое позволяет автоматически связать обычные классы языка C# с таблицами в базе данных. Entity Framework Core нацелен в первую очередь на работу с СУБД MS SQL Server, однако поддерживает также и ряд других СУБД. В данном случае мы будем работать с базами данных в MS SQL Server. По умолчанию в проекте библиотеки Entity Framework отсутствуют, и их надо добавить. Это можно сделать разными способами: через Nuget, через Package Manager Console вписав нужную зависимость в project.json.

Слайд 5





Понятие Entity Framework Core
Для взаимодействия с MS SQL Server через Entity Framework необходим пакет Microsoft.EntityFrameworkCore.SqlServer. 
Перед работой с базой данных нам предварительно надо создать эту базу данных в соответствии с вышеопределенными моделями (Add-Migration, Update-Database). И для этого потребуется пакет Microsoft.EntityFrameworkCore.Tools. 
В проекте для версии ASP.NET Core 2.0 и выше эти пакеты уже присутствуют по умолчанию.
Описание слайда:
Понятие Entity Framework Core Для взаимодействия с MS SQL Server через Entity Framework необходим пакет Microsoft.EntityFrameworkCore.SqlServer. Перед работой с базой данных нам предварительно надо создать эту базу данных в соответствии с вышеопределенными моделями (Add-Migration, Update-Database). И для этого потребуется пакет Microsoft.EntityFrameworkCore.Tools. В проекте для версии ASP.NET Core 2.0 и выше эти пакеты уже присутствуют по умолчанию.

Слайд 6





1. Создание сущностей
Далее добавим в проект новую папку, которую назовем Models. И в этой папке определим новый класс Phone:
public class Phone
{
    public int Id { get; set; }
    public string Name { get; set; } // название смартфона
    public string Company { get; set; } // компания
    public int Price { get; set; } // цена
}
Описание слайда:
1. Создание сущностей Далее добавим в проект новую папку, которую назовем Models. И в этой папке определим новый класс Phone: public class Phone {     public int Id { get; set; }     public string Name { get; set; } // название смартфона     public string Company { get; set; } // компания     public int Price { get; set; } // цена }

Слайд 7





2. Добавление контекста
Чтобы взаимодействовать с базой данных через Entity Framework нам нужен контекст данных - класс, унаследованный от класса Microsoft.EntityFrameworkCore.DbContext. Поэтому добавим в папку Models новый класс, который назовем MobileContext:
using Microsoft.EntityFrameworkCore;
 
namespace EFDataApp.Models
{
    public class MobileContext : DbContext
    {
        public DbSet<Phone> Phones { get; set; }
        public MobileContext(DbContextOptions<MobileContext> options)
            : base(options)
        {
        }
    }
}
Описание слайда:
2. Добавление контекста Чтобы взаимодействовать с базой данных через Entity Framework нам нужен контекст данных - класс, унаследованный от класса Microsoft.EntityFrameworkCore.DbContext. Поэтому добавим в папку Models новый класс, который назовем MobileContext: using Microsoft.EntityFrameworkCore;   namespace EFDataApp.Models {     public class MobileContext : DbContext     {         public DbSet<Phone> Phones { get; set; }         public MobileContext(DbContextOptions<MobileContext> options)             : base(options)         {         }     } }

Слайд 8





2. Добавление контекста
Свойство DbSet представляет собой коллекцию объектов, которая сопоставляется с определенной таблицей в базе данных. При этом по умолчанию название свойства должно соответствовать множественному числу названию модели в соответствии с правилами английского языка. То есть phone - название класса модели представляет единственное число, а phones - множественное число.
Через параметр options в конструктор контекста данных будут передаваться настройки контекста.
Описание слайда:
2. Добавление контекста Свойство DbSet представляет собой коллекцию объектов, которая сопоставляется с определенной таблицей в базе данных. При этом по умолчанию название свойства должно соответствовать множественному числу названию модели в соответствии с правилами английского языка. То есть phone - название класса модели представляет единственное число, а phones - множественное число. Через параметр options в конструктор контекста данных будут передаваться настройки контекста.

Слайд 9





3. Настройка подключения к БД
Чтобы подключаться к базе данных, нам надо задать параметры подключения. Для этого изменим файл appsettings.json, добавив в него определение строки подключения:
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=mobilesdb;Trusted_Connection=True;"
  },
  // остальное содержимое файла
}
Описание слайда:
3. Настройка подключения к БД Чтобы подключаться к базе данных, нам надо задать параметры подключения. Для этого изменим файл appsettings.json, добавив в него определение строки подключения: {   "ConnectionStrings": {     "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=mobilesdb;Trusted_Connection=True;"   },   // остальное содержимое файла }

Слайд 10





3. Настройка подключения к БД
Чтобы подключаться к базе данных, нам надо задать параметры подключения. Для этого изменим файл appsettings.json, добавив в него определение строки подключения:
{
  "ConnectionStrings": {
    "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=mobilesdb;Trusted_Connection=True;"
  },
  // остальное содержимое файла
}
Описание слайда:
3. Настройка подключения к БД Чтобы подключаться к базе данных, нам надо задать параметры подключения. Для этого изменим файл appsettings.json, добавив в него определение строки подключения: {   "ConnectionStrings": {     "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=mobilesdb;Trusted_Connection=True;"   },   // остальное содержимое файла }

Слайд 11





4. Настройка сервиса
Последним шагом в настройке проекта является изменение файла Startup.cs. В нем нам надо изменить метод ConfigureServices():
public void ConfigureServices(IServiceCollection services)
{
     // получаем строку подключения из файла конфигурации
     string connection = Configuration.GetConnectionString("DefaultConnection");
    // добавляем контекст MobileContext в качестве сервиса    
    services.AddDbContext<MobileContext>(options =>
         options.UseSqlServer(connection));

    services.AddMvc();
}
Описание слайда:
4. Настройка сервиса Последним шагом в настройке проекта является изменение файла Startup.cs. В нем нам надо изменить метод ConfigureServices(): public void ConfigureServices(IServiceCollection services) {      // получаем строку подключения из файла конфигурации      string connection = Configuration.GetConnectionString("DefaultConnection");     // добавляем контекст MobileContext в качестве сервиса     services.AddDbContext<MobileContext>(options =>          options.UseSqlServer(connection));     services.AddMvc(); }

Слайд 12





4. Настройка сервиса
Добавление контекста данных в виде сервиса позволит затем получать его в конструкторе контроллера через механизм внедрения зависимостей.
Описание слайда:
4. Настройка сервиса Добавление контекста данных в виде сервиса позволит затем получать его в конструкторе контроллера через механизм внедрения зависимостей.

Слайд 13





Обновление базы данных
После определения всех настроек используем миграции для создания базы данных. Для этого построим проект и откроем окно Package Manager Console. Его можно найти в меню Tools -> Nuget Package Manager -> Package Manager Console.
Последовательно введем в это окно две команды. Сначала выполним команду:
Add-Migration Initial
Эта команда добавит в проект новую миграцию.
Затем выполним команду:
Update-Database
Эта команда по миграции Initial собственно сгенерирует базу данных.
Описание слайда:
Обновление базы данных После определения всех настроек используем миграции для создания базы данных. Для этого построим проект и откроем окно Package Manager Console. Его можно найти в меню Tools -> Nuget Package Manager -> Package Manager Console. Последовательно введем в это окно две команды. Сначала выполним команду: Add-Migration Initial Эта команда добавит в проект новую миграцию. Затем выполним команду: Update-Database Эта команда по миграции Initial собственно сгенерирует базу данных.

Слайд 14





Обновление базы данных
Описание слайда:
Обновление базы данных

Слайд 15





Операции с моделями
Вначале изменим имеющийся по умолчанию контроллер HomeController:
using System.Linq;
using Microsoft.AspNetCore.Mvc;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
using EFDataApp.Models; // пространство имен моделей 
 
namespace EFDataApp.Controllers
{
    public class HomeController : Controller
    {
        private MobileContext db;
        public HomeController(MobileContext context)
        {
            db = context;
        }
    }
}
Описание слайда:
Операции с моделями Вначале изменим имеющийся по умолчанию контроллер HomeController: using System.Linq; using Microsoft.AspNetCore.Mvc; using System.Threading.Tasks; using Microsoft.EntityFrameworkCore; using EFDataApp.Models; // пространство имен моделей   namespace EFDataApp.Controllers {     public class HomeController : Controller     {         private MobileContext db;         public HomeController(MobileContext context)         {             db = context;         }     } }

Слайд 16





Создание и вывод
Методы чтения и вставки данных:
public IActionResult Index()
{
    return View(db.Phones.ToList());
}
public IActionResult Create()
{
    return View();
}
[HttpPost]
public IActionResult Create(Phone phone)
{
    db.Phones.Add(phone);
    db.SaveChanges();

    return RedirectToAction("Index");
}
Описание слайда:
Создание и вывод Методы чтения и вставки данных: public IActionResult Index() {     return View(db.Phones.ToList()); } public IActionResult Create() {     return View(); } [HttpPost] public IActionResult Create(Phone phone) {     db.Phones.Add(phone);     db.SaveChanges();     return RedirectToAction("Index"); }

Слайд 17





Редактирование и удаление
Для редактирования и удаления служат методы Update и Remove, принимающие объект, с которым производится операция.
Описание слайда:
Редактирование и удаление Для редактирования и удаления служат методы Update и Remove, принимающие объект, с которым производится операция.

Слайд 18





Сортировка и фильтрация
Для сортировки применяются методы LINQ – OrderBy и OrderByDescending
При необходимости упорядочить данные сразу по нескольким критериям можно использовать методы ThenBy()(для сортировки по возрастанию) и ThenByDescending(). Например, отсортируем по двум значениям:
var phones = db.Phones.OrderBy(p => p.Price).ThenBy(p=>p.Company.Name);
Для фильтрации применяется метод LINQ – WHERE
Описание слайда:
Сортировка и фильтрация Для сортировки применяются методы LINQ – OrderBy и OrderByDescending При необходимости упорядочить данные сразу по нескольким критериям можно использовать методы ThenBy()(для сортировки по возрастанию) и ThenByDescending(). Например, отсортируем по двум значениям: var phones = db.Phones.OrderBy(p => p.Price).ThenBy(p=>p.Company.Name); Для фильтрации применяется метод LINQ – WHERE

Слайд 19





Постраничная навигация
Для постраничной навигации используется:
// page – текущая страницы
// pageSize – количество элементов на странице
var users = _context.Users.Skip((page - 1) * pageSize).Take(pageSize).ToList();
Описание слайда:
Постраничная навигация Для постраничной навигации используется: // page – текущая страницы // pageSize – количество элементов на странице var users = _context.Users.Skip((page - 1) * pageSize).Take(pageSize).ToList();

Слайд 20





Выражения LIKE и IN
Использование выражения LIKE:
var users = _context. Users.Where(x => x.name.StartsWith(“value”));
var users = _context. Users.Where(x => x.name.Contains(“value”));
var users = _context. Users.Where(x => x.name.EndsWith(“value”));

Использование IN:
List<string> values = new List<string> { “a”, “b” };
var users = _context.Users.Where(x => values.Contains(x.name));
Описание слайда:
Выражения LIKE и IN Использование выражения LIKE: var users = _context. Users.Where(x => x.name.StartsWith(“value”)); var users = _context. Users.Where(x => x.name.Contains(“value”)); var users = _context. Users.Where(x => x.name.EndsWith(“value”)); Использование IN: List<string> values = new List<string> { “a”, “b” }; var users = _context.Users.Where(x => values.Contains(x.name));

Слайд 21





Выражение LIKE
Начиная с версии 2.0 в Entity Framework Core можно использовать метод EF.Functions.Like(). Он позволяет транслировать условие в выражение с оператором LIKE на стороне MS SQL Server. Метод принимает два параметра - оцениваемое выражение и шаблон, с которым сравнивается его значение. Например, найдем все телефоны, в названии которых есть слово "Galaxy":
using (ApplicationContext db = new ApplicationContext())
{
  var phones = db.Phones.Where(p => EF.Functions.Like(p.Name, "%Galaxy%"));
  foreach (Phone phone in phones)
    Console.WriteLine($"{phone.Name} ({phone.Price})");
}
Описание слайда:
Выражение LIKE Начиная с версии 2.0 в Entity Framework Core можно использовать метод EF.Functions.Like(). Он позволяет транслировать условие в выражение с оператором LIKE на стороне MS SQL Server. Метод принимает два параметра - оцениваемое выражение и шаблон, с которым сравнивается его значение. Например, найдем все телефоны, в названии которых есть слово "Galaxy": using (ApplicationContext db = new ApplicationContext()) {   var phones = db.Phones.Where(p => EF.Functions.Like(p.Name, "%Galaxy%"));   foreach (Phone phone in phones)     Console.WriteLine($"{phone.Name} ({phone.Price})"); }

Слайд 22





Выражение LIKE
Для определения шаблона могут применяться ряд специальных символов подстановки:
%: соответствует любой подстроке, которая может иметь любое количество символов, при этом подстрока может и не содержать ни одного символа
_: соответствует любому одиночному символу
[ ]: соответствует одному символу, который указан в квадратных скобках
[ - ]: соответствует одному символу из определенного диапазона
[ ^ ]: соответствует одному символу, который не указан после символа ^
Описание слайда:
Выражение LIKE Для определения шаблона могут применяться ряд специальных символов подстановки: %: соответствует любой подстроке, которая может иметь любое количество символов, при этом подстрока может и не содержать ни одного символа _: соответствует любому одиночному символу [ ]: соответствует одному символу, который указан в квадратных скобках [ - ]: соответствует одному символу из определенного диапазона [ ^ ]: соответствует одному символу, который не указан после символа ^

Слайд 23





Агрегатные операции
Количество элементов в выборке:
int number1 = db.Phones.Count();
// найдем кол-во моделей, которые в названии содержат Samsung
int number2 = db.Phones.Count(p => p.Name.Contains("Samsung"));
2. Минимальное, максимальное и среднее значения
int minPrice = db.Phones.Min(p => p.Price);
// максимальная цена
int maxPrice = db.Phones.Max(p => p.Price);
// средняя цена на телефоны фирмы Samsung
double avgPrice = db.Phones.Average(p => p.Price);
3. Сумма значений (Sum).
Описание слайда:
Агрегатные операции Количество элементов в выборке: int number1 = db.Phones.Count(); // найдем кол-во моделей, которые в названии содержат Samsung int number2 = db.Phones.Count(p => p.Name.Contains("Samsung")); 2. Минимальное, максимальное и среднее значения int minPrice = db.Phones.Min(p => p.Price); // максимальная цена int maxPrice = db.Phones.Max(p => p.Price); // средняя цена на телефоны фирмы Samsung double avgPrice = db.Phones.Average(p => p.Price); 3. Сумма значений (Sum).

Слайд 24





Загрузка связанных данных
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
    public int CompanyId { get; set; }
    public Company Company { get; set; }
}
 
public class Company
{
    public int Id { get; set; }
    public string Name { get; set; }
 
    public List<User> Users { get; set; }
    public Company()
    {
        Users = new List<User>();
    }
}
Описание слайда:
Загрузка связанных данных public class User {     public int Id { get; set; }     public string Name { get; set; }     public int Age { get; set; }     public int CompanyId { get; set; }     public Company Company { get; set; } }   public class Company {     public int Id { get; set; }     public string Name { get; set; }       public List<User> Users { get; set; }     public Company()     {         Users = new List<User>();     } }

Слайд 25





Загрузка связанных данных
Для загрузки связанных данных используется выражение Include:

IQueryable<User> source = _context.Users.Include(x => x.Company);

var count = source.Count();
var items = source.ToList();
Описание слайда:
Загрузка связанных данных Для загрузки связанных данных используется выражение Include: IQueryable<User> source = _context.Users.Include(x => x.Company); var count = source.Count(); var items = source.ToList();

Слайд 26





Объединение Join
В результате объединения получается новый объект:
List<TripleObject> Data = _context.t_data_indicators.Where(x => x.CalculationId == _calculationId).Join(_context.t_sprav_indicators,
                d => d.indicator_id, // t_data_indicators
                s => s.indicator_id, // t_sprav_indicators
                (d, s) => new TripleObject { param1 = d.pech_id, param2 = s.symbol, param3 = d.value }
            ).ToList();
Описание слайда:
Объединение Join В результате объединения получается новый объект: List<TripleObject> Data = _context.t_data_indicators.Where(x => x.CalculationId == _calculationId).Join(_context.t_sprav_indicators, d => d.indicator_id, // t_data_indicators s => s.indicator_id, // t_sprav_indicators (d, s) => new TripleObject { param1 = d.pech_id, param2 = s.symbol, param3 = d.value } ).ToList();



Похожие презентации
Mypresentation.ru
Загрузить презентацию