-
Notifications
You must be signed in to change notification settings - Fork 3.7k
Description
Is there an existing issue for this?
- I have searched the existing issues
Description
During debugging, I found that the execution time for DynamicProxyGenAssembly2 is relatively long. How can I solve this issue?
The application layer contains a large amount of business code
`[ApiExplorerSettings(GroupName = nameof(ApiGroup.Common_v1))]
public class ClientDetailAppService : CrudAppService<ClientDetail, ClientDetailDto, long, PagedAndSortedResultRequestDto, CreateUpdateClientDetailDto, CreateUpdateClientDetailDto>
{
protected override string GetPolicyName { get; set; } = MESPermissions.ClientDetail.Default;
protected override string GetListPolicyName { get; set; } = MESPermissions.ClientDetail.Default;
protected override string CreatePolicyName { get; set; } = MESPermissions.ClientDetail.Create;
protected override string UpdatePolicyName { get; set; } = MESPermissions.ClientDetail.Update;
protected override string DeletePolicyName { get; set; } = MESPermissions.ClientDetail.Delete;
private readonly IClientDetailRepository _repository;
private readonly IStringLocalizer _localizer;
public ClientDetailAppService(IClientDetailRepository repository, IStringLocalizer localizer) : base(repository)
{
_repository = repository;
_localizer = localizer;
}
///
///
///
///
///
[Authorize(MESPermissions.ClientDetail.Default)]
public override Task<PagedResultDto> GetListAsync(PagedAndSortedResultRequestDto input)
{
return base.GetListAsync(input);
}
///
///
///
///
///
[Authorize(MESPermissions.ClientDetail.Default)]
public override Task GetAsync(long id)
{
return base.GetAsync(id);
}
///
///
///
///
///
[Authorize(MESPermissions.ClientDetail.Create)]
public override Task CreateAsync(CreateUpdateClientDetailDto input)
{
if (input.Id != 0)
{
throw Oops.Error("ClientDetail.Create.010", "创建操作不应携带数据主键Id信息");
}
// 检查代码及名称是否存在重复
if (_repository.FreeSql.Queryable().Any(item => item.ClientId == input.ClientId && item.ResourceId == input.ResourceId))
{
throw Oops.Error("ClientDetail.Create.020", "资源存在重复请检查后重新维护!");
}
return base.CreateAsync(input);
}
/// <summary>
///
/// </summary>
/// <param name="inputs"></param>
/// <returns></returns>
public async Task<List<ClientDetailDto>> CreateBulkAsync(List<CreateUpdateClientDetailDto> inputs)
{
List<ClientDetailDto> clientDetailDtos = new List<ClientDetailDto>();
foreach (var item in inputs)
{
var clientDetailDto = await CreateAsync(item);
clientDetailDtos.Add(clientDetailDto);
}
return clientDetailDtos;
}
/// <summary>
///
/// </summary>
/// <param name="id"></param>
/// <param name="input"></param>
/// <returns></returns>
[Authorize(MESPermissions.ClientDetail.Update)]
public override Task<ClientDetailDto> UpdateAsync(long id, CreateUpdateClientDetailDto input)
{
if (!_repository.FreeSql.Queryable<ClientDetail>().Any(item => item.Id != input.Id))
{
throw Oops.Error("ClientDetail.Update.010", "Id 无效,请重新查询后重试!");
}
if (_repository.FreeSql.Queryable<ClientDetail>().Any(item => item.Id != input.Id && item.ClientId == input.ClientId && item.ResourceId == input.ResourceId))
{
throw Oops.Error("ClientDetail.Update.020", "资源维护重复请检查后重新维护!");
}
return base.UpdateAsync(id, input);
}
/// <summary>
/// Delete
/// </summary>
/// <param name="id"></param>
/// <returns></returns>
[Authorize(MESPermissions.ClientDetail.Delete)]
public async override Task DeleteAsync(long id)
{
await base.DeleteByIdAsync(id);
}
/// <summary>
/// Delete
/// </summary>
/// <param name="ids"></param>
/// <returns></returns>
[Authorize(MESPermissions.ClientDetail.Delete)]
public async override Task DeleteBulkAsync([FromBody] IEnumerable<long> ids)
{
await base.DeleteBulkAsync(ids);
}
}`
Reproduction Steps
No response
Expected behavior
No response
Actual behavior
No response
Regression?
No response
Known Workarounds
No response
Version
8.2.3
User Interface
Common (Default)
Database Provider
EF Core (Default)
Tiered or separate authentication server
None (Default)
Operation System
Windows (Default)
Other information
No response