我正在尝试仅为一个简单的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也不使用存储库的文档。 我需要创建一个服务类来实现基本的页面调度,排序和过滤,但是我所研究的Like this都使用了MVC,我不知道如何将其转换为我的项目。
答案 0 :(得分:-1)
根据您的代码和注释,您有一个适用于.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
对象内部的功能。