Как я могу получить сортировку, разбиение на страницы и фильтрацию в репозитории без MVC - PullRequest
0 голосов
/ 18 ноября 2018

Я пытаюсь создать только внутреннюю часть для простого проекта CRUD.Я совершенно новичок в asp.net и сейчас читаю по ходу дела.Но я застрял.

Я создал сущности (модели), которые мне нужны

public class VehicleMakeEntity
{
    public int Id { get; set; }

    public string Name { get; set; }

    public string Abrv { get; set; }

    public VehicleMakeEntity Make { get; set; }
}

Я также создал стандартный класс DbContext и репозитории

class MakeRepository : IMakeRepository
{
    ProjectDbContext context;

    public MakeRepository(ProjectDbContext context)
    {
        this.context = context;
    }

    public void Delete(VehicleMakeEntity entity)
    {
        context.VehicleMake.Remove(entity);
        context.SaveChanges();
        Console.WriteLine(entity.Make.Name);
    }

    public void Insert(VehicleMakeEntity entity)
    {
        context.VehicleMake.Add(entity);
        context.SaveChanges();
    }

    public void Update(VehicleMakeEntity entity)
    {
        context.VehicleMake.Update(entity);
        context.SaveChanges();
    }

    public void Dispose()
    {
        context.Dispose();
    }
}

Теперь у меня проблема: я не могу найти документацию, которая не использует MVC и использует репозитории.Мне нужно создать класс обслуживания, который реализует базовые функции разбиения по страницам, сортировки и фильтрации, но все, на что я смотрю Например, использует MVC, и я понятия не имею, как преобразовать его в мой проект.

1 Ответ

0 голосов
/ 18 ноября 2018

Исходя из вашего кода и комментариев, у вас есть настройка, предназначенная для веб-приложений .NET Core, которые могут быть реализованы с помощью служб (внедрение зависимостей).Однако вы можете запустить всю установку внедрения зависимостей в консольном приложении, в котором нет веб-приложения.

Во-первых, вам нужно будет добавить пакет Microsoft.AspNetCore.All, чтобы вы получили все используемые классы (в основном Microsoft.Extensions.DependencyInjection).Теперь вы можете создать своего поставщика услуг примерно так:

var provider = new ServiceCollection()
                .AddDbContext<ProjectDbContext>(config => // connection here)
                .AddScoped<IMakeRepository, MakeRepository>()
                .BuildServiceProvider();

Теперь вы можете получить любую услугу, которую захотите, у своего поставщика.Приведенный выше код также позволяет вам добавить любой сервис, который вы найдете в любом учебном руководстве по .NET Core MVC, поскольку он использует те же классы и библиотеки.Допустим, вы хотите получить IMakeRepository, вы можете использовать следующее:

var makeRepo = provider.GetService<IMakeRepository>();

Теперь вы можете проверить функции внутри вашего makeRepo объекта.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...