Exemplo n.º 1
0
        /// <summary>
        /// Inserta o actualiza la entidad especificada en función si está o no establecido su llave primaria
        /// </summary>
        /// <param name="entity">Entidad a guardar</param>
        /// <returns></returns>
        public Task Save(IReadOnlyList <TEntity> entities) =>
        entities.Any() ?
        ExecuteInContext(async(db, dbSet) =>
        {
            foreach (var entity in entities)
            {
                // Se valida la entidad, si hay algún error se arroja una excepción
                await modelValidator.ValidateOrThrow(
                    dbSet,
                    entity
                    );

                AddOrUpdate(dbSet, entity);
            }

            return(await db.SaveChangesAsync());
        }) :
        Task.CompletedTask;