我有大约 50 个需要简单直接的 CRUD 操作的主表,我的表已经在 sql 数据库中可用。
我的问题是如何使它通用,这样我就不需要为主表手动创建每个单独的页面。我在 Boilerplate 框架中看到了一些 ABP CRUDEntityAscyn 类,但我想知道如何将它带到表示层(.cshtml)。
我有大约 50 个需要简单直接的 CRUD 操作的主表,我的表已经在 sql 数据库中可用。
我的问题是如何使它通用,这样我就不需要为主表手动创建每个单独的页面。我在 Boilerplate 框架中看到了一些 ABP CRUDEntityAscyn 类,但我想知道如何将它带到表示层(.cshtml)。
如果您需要为特定实体创建具有 Create、Update、Delete、Get、GetAll 方法的应用程序服务,您可以从 CrudAppService(或 AsyncCrudAppService,如果您想创建异步方法)类继承以更轻松地创建它。CrudAppService 基类是通用的,它获取相关的 Entity 和 DTO 类型作为通用参数,并且是可扩展的,允许您在需要自定义功能时覆盖它。
public class Task : Entity, IHasCreationTime
{
public string Title { get; set; }
public string Description { get; set; }
public DateTime CreationTime { get; set; }
public TaskState State { get; set; }
public Person AssignedPerson { get; set; }
public Guid? AssignedPersonId { get; set; }
public Task()
{
CreationTime = Clock.Now;
State = TaskState.Open;
}
}
[AutoMap(typeof(Task))]
public class TaskDto : EntityDto, IHasCreationTime
{
public string Title { get; set; }
public string Description { get; set; }
public DateTime CreationTime { get; set; }
public TaskState State { get; set; }
public Guid? AssignedPersonId { get; set; }
public string AssignedPersonName { get; set; }
}
public class TaskAppService : AsyncCrudAppService<Task, TaskDto>
{
public TaskAppService(IRepository<Task> repository)
: base(repository)
{
}
}
public interface ITaskAppService : IAsyncCrudAppService<TaskDto>
{
}
public class TaskAppService : AsyncCrudAppService<Task, TaskDto>, ITaskAppService
{
public TaskAppService(IRepository<Task> repository)
: base(repository)
{
}
}
从客户端代码调用 webapi:
var _editionService = abp.services.app.edition
_editionService.deleteEdition({
id: edition.id
}).done(function () {
getEditions();
abp.notify.success(app.localize('SuccessfullyDeleted'));
});