[英]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.