.Include(c => c.MakeNavigation)
.OrderBy(o => o.PetName);
public override IEnumerable
=> Table
.Include(c => c.MakeNavigation)
.OrderBy(o => o.PetName)
.IgnoreQueryFilters;
Реализуйте метод GetAllBy. Перед выполнением он обязан установить фильтр для контекста. Включите навигационное свойство Make и отсортируйте по значению PetName:
public IEnumerable
{
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
{
public CreditRiskRepo(ApplicationDbContext context) : base(context)
{
}
internal CreditRiskRepo(
DbContextOptions
: 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
{
public CustomerRepo(ApplicationDbContext context)
: base(context)
{
}
internal CustomerRepo(
DbContextOptions
: base(options)
{
}
}
}
Наконец, добавьте метод, который возвращает все записи Customer с их заказами, отсортированные по значениям LastName:
public override IEnumerable
=> Table
.Include(c => c.Orders)
.OrderBy(o => o.PersonalInformation.LastName);
Хранилище данных о производителях
Откройте файл класса MakeRepo.cs и поместите в его начало перечисленные ниже операторы using:
Бьёрн Страуструп , Ирина Сергеевна Козлова , Бьерн Страуструп , Валерий Федорович Альмухаметов
Программирование, программы, базы данных / Базы данных / Программирование / Учебная и научная литература / Образование и наука / Книги по IT