繁体   English   中英

没有MVC的情况下如何在存储库上进行排序,分页和过滤

[英]How can I get sorting, paging and filtering on a Repository without MVC

我试图为一个简单的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 这样使用,我不知道如何将其转换为我的项目。

根据您的代码和注释,您将建立一个适用于.NET Core Web应用程序的设置,该应用程序可通过服务实现(依赖注入)。 但是,您可以在不托管Web应用程序的基于控制台的应用程序上运行整个依赖项注入设置。

首先,您需要添加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对象中的功能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM