Шрифт:
Интервал:
Закладка:
.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;
}
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Хранилище данных о кредитных рисках
Откройте файл класса 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)
{
}
}
}
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Хранилище данных о заказчиках
Откройте файл класса 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)
{
}
}
}
(window.adrunTag = window.adrunTag || []).push({v: 1, el: 'adrun-4-390', c: 4, b: 390})Наконец, добавьте метод, который возвращает все записи 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 и добавьте два обязательных конструктора:
- Понимание SQL - Мартин Грубер - Базы данных