Читаем Язык программирования C#9 и платформа .NET5 полностью

            .Include(c => c.MakeNavigation)

            .OrderBy(o => o.PetName);

public override IEnumerable GetAllIgnoreQueryFilters

  => Table

            .Include(c => c.MakeNavigation)

            .OrderBy(o => o.PetName)

            .IgnoreQueryFilters;


Реализуйте метод GetAllBy. Перед выполнением он обязан установить фильтр для контекста. Включите навигационное свойство Make и отсортируйте по значению PetName:


public IEnumerable GetAllBy(int makeId)

{

  return Table

    .Where(x => x.MakeId == makeId)

    .Include(c => c.MakeNavigation)

    .OrderBy(c => c.PetName);

}


Добавьте переопределенную версию Find, в которой включается свойство MakeNavigation, а фильтры запросов игнорируются:


public override Car? Find(int? id)

  => Table

        .IgnoreQueryFilters

        .Where(x => x.Id == id)

        .Include(m => m.MakeNavigation)

        .FirstOrDefault;


Добавьте метод, который позволяет получить значение PetName, используя хранимую процедуру:


public string GetPetName(int id)

{

  var parameterId = new SqlParameter

  {

    ParameterName = "@carId",

    SqlDbType = SqlDbType.Int,

    Value = id,

  };

   var parameterName = new SqlParameter

  {

    ParameterName = "@petName",

    SqlDbType = SqlDbType.NVarChar,

    Size = 50,

    Direction = ParameterDirection.Output

  };

  _ = Context.Database

     .ExecuteSqlRaw("EXEC [dbo].[GetPetName] @carId, @petName OUTPUT",

     parameterId, parameterName);

  return (string)parameterName.Value;

}

Хранилище данных о кредитных рисках

Откройте файл класса CreditRiskRepo.cs и поместите в его начало следующие операторы using:


using AutoLot.Dal.EfStructures;

using AutoLot.Dal.Models.Entities;

using AutoLot.Dal.Repos.Base;

using AutoLot.Dal.Repos.Interfaces;

using Microsoft.EntityFrameworkCore;


Измените класс на public, унаследуйте его от BaseRepo, реализуйте ICreditRiskRepo и добавьте два обязательных конструктора:


namespace AutoLot.Dal.Repos

{

  public class CreditRiskRepo : BaseRepo, ICreditRiskRepo

  {

    public CreditRiskRepo(ApplicationDbContext context) : base(context)

    {

    }

    internal CreditRiskRepo(

      DbContextOptions options)

    : base(options)

    {

    }

  }

}

Хранилище данных о заказчиках

Откройте файл класса CustomerRepo.cs и поместите в его начало приведенные далее операторы using:


using System.Collections.Generic;

using System.Linq;

using AutoLot.Dal.EfStructures;

using AutoLot.Dal.Models.Entities;

using AutoLot.Dal.Repos.Base;

using AutoLot.Dal.Repos.Interfaces;

using Microsoft.EntityFrameworkCore;


Измените класс на public, унаследуйте его от BaseRepo, реализуйте ICustomerRepo и добавьте два обязательных конструктора:


namespace AutoLot.Dal.Repos

{

  public class CustomerRepo : BaseRepo, ICustomerRepo

  {

    public CustomerRepo(ApplicationDbContext context)

      : base(context)

    {

    }

    internal CustomerRepo(

      DbContextOptions options)

      : base(options)

    {

    }

  }

}


Наконец, добавьте метод, который возвращает все записи Customer с их заказами, отсортированные по значениям LastName:


public override IEnumerable GetAll

  => Table

      .Include(c => c.Orders)

      .OrderBy(o => o.PersonalInformation.LastName);

Хранилище данных о производителях

Откройте файл класса MakeRepo.cs и поместите в его начало перечисленные ниже операторы using:


Перейти на страницу:

Похожие книги

Программирование. Принципы и практика использования C++ Исправленное издание
Программирование. Принципы и практика использования C++ Исправленное издание

Специальное издание самой читаемой и содержащей наиболее достоверные сведения книги по C++. Книга написана Бьярне Страуструпом — автором языка программирования C++ — и является каноническим изложением возможностей этого языка. Помимо подробного описания собственно языка, на страницах книги вы найдете доказавшие свою эффективность подходы к решению разнообразных задач проектирования и программирования. Многочисленные примеры демонстрируют как хороший стиль программирования на С-совместимом ядре C++, так и современный -ориентированный подход к созданию программных продуктов. Третье издание бестселлера было существенно переработано автором. Результатом этой переработки стала большая доступность книги для новичков. В то же время, текст обогатился сведениями и методиками программирования, которые могут оказаться полезными даже для многоопытных специалистов по C++. Не обойдены вниманием и нововведения языка: стандартная библиотека шаблонов (STL), пространства имен (namespaces), механизм идентификации типов во время выполнения (RTTI), явные приведения типов (cast-операторы) и другие. Настоящее специальное издание отличается от третьего добавлением двух новых приложений (посвященных локализации и безопасной обработке исключений средствами стандартной библиотеки), довольно многочисленными уточнениями в остальном тексте, а также исправлением множества опечаток. Книга адресована программистам, использующим в своей повседневной работе C++. Она также будет полезна преподавателям, студентам и всем, кто хочет ознакомиться с описанием языка «из первых рук».

Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов

Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Нил Форд , Билл де Ора , Майкл Хайгард

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT