.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<CreditRisk>
, реализуйте
ICreditRiskRepo
и добавьте два обязательных конструктора:
namespace AutoLot.Dal.Repos
{
<b>public</b> class CreditRiskRepo : <b>BaseRepo<CreditRisk>, ICreditRiskRepo</b>
{
public CreditRiskRepo(ApplicationDbContext context) : base(context)
{
}
internal CreditRiskRepo(
DbContextOptions<ApplicationDbContext> 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<Customer>
, реализуйте
ICustomerRepo
и добавьте два обязательных конструктора:
namespace AutoLot.Dal.Repos
{
<b>public</b> class CustomerRepo : <b>BaseRepo<Customer>, ICustomerRepo</b>
{
public CustomerRepo(ApplicationDbContext context)
: base(context)
{
}
internal CustomerRepo(
DbContextOptions<ApplicationDbContext> options)
: base(options)
{
}
}
}
Наконец, добавьте метод, который возвращает все записи
Customer
с их заказами, отсортированные по значениям
LastName
:
public override IEnumerable<Customer> GetAll()
=> Table
.Include(c => c.Orders)
.OrderBy(o => o.PersonalInformation.LastName);
Хранилище данных о производителях
Откройте файл класса
MakeRepo.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<Make>
, реализуйте
IMakeRepo
и добавьте два обязательных конструктора: