Я пытаюсь работать с дочерними объектами в ABP
, но когда я вызываю методы репозитория, ничего не происходит, то, как я делаю это, удаляет все записи и вставляет их снова, когда методы вызываются, я получаю повторяющиеся записи
Я работаю с ним в DomainService
слое, вот мой менеджер
using Abp.Domain.Repositories;
using Abp.Domain.Services;
using DomiSys.Prestamos.Models.Generales.ClienteFuturoNs.DireccionClienteFuturoNs;
using Microsoft.EntityFrameworkCore;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
namespace DomiSys.Prestamos.Models.Generales.DireccionClienteFuturoNs
{
public class DireccionClienteFuturoManager : DomainService, IDireccionClienteFuturoManager
{
private readonly IRepository<DireccionClienteFuturo> _direccionClienteFuturoRepository;
public DireccionClienteFuturoManager(IRepository<DireccionClienteFuturo> direccionClienteFuturoRepository)
{
LocalizationSourceName = PrestamosConsts.LocalizationSourceName;
_direccionClienteFuturoRepository = direccionClienteFuturoRepository;
}
public async Task<DireccionClienteFuturo> Registrar(DireccionClienteFuturo entity)
{
return await _direccionClienteFuturoRepository.InsertAsync(entity);
}
public async void Eliminar(DireccionClienteFuturo entity)
{
await _direccionClienteFuturoRepository.DeleteAsync(entity);
}
public async void EliminarTodo(int clienteId)
{
var list = _direccionClienteFuturoRepository.GetAll().Where(x => x.ClienteFuturoId == clienteId).ToList();
foreach (var item in list)
{
await _direccionClienteFuturoRepository.DeleteAsync(item);
}
}
public async void RegistrarLista(IEnumerable<DireccionClienteFuturo> lista)
{
foreach (var item in lista)
{
item.Id = 0;
await _direccionClienteFuturoRepository.InsertAsync(item);
}
}
}
}
И я использую его вот так
private void InsertarDireccion(ClienteFuturo clienteNuevo)
{
_direccionClienteFuturoManager.EliminarTodo(clienteNuevo.Id);
_direccionClienteFuturoManager.RegistrarLista(clienteNuevo.ListaDirecciones);
}
public Task<ClienteFuturo> Actualizar(ClienteFuturo entity)
{
Validar(entity);
entity.SucursalId = usuario.SucursalId ?? 0;
InsertaActualizaConyugue(entity);
entity.FechaNacimiento = Shared.Shared.FormateaFecha(entity.FechaNacimiento);
var result = _clienteRepository.Update(entity);
InsertarTelefono(entity);
InsertarEmail(entity);
InsertarDireccion(entity);
return Task.FromResult(result);
}
InsertaTelefonos(entity)
метод вызывается из Actualizar
метода
При вызове методов я получаю повторяющиеся записи в базе данных.
Что я делаю не так?