/// <summary> /// Create a list of new entities /// </summary> /// <param name="entities">List of entities</param> /// <returns>Task</returns> public virtual async Task CreateManyAsync(IEnumerable <TEntity> entities) { var insertColumns = EntityColumns.Where(c => c != IdPropertyName); var insertCommand = $@" INSERT INTO {TableName} ({string.Join(",", insertColumns)}) VALUES (@{string.Join(",@", insertColumns)})"; await Connection.ExecuteAsync(insertCommand, entities.ToList()); }
/// <summary> /// Create a new entity /// </summary> /// <param name="entity">Entity</param> /// <returns>Task</returns> public virtual async Task CreateAsync(TEntity entity) { var insertColumns = EntityColumns.Where(c => !ExcludeProperty.Contains(c)); var insertQuery = $@"INSERT INTO {TableName} ({string.Join(",", insertColumns)}) VALUES (@{string.Join(",@", insertColumns)}); {LastRowIdCommand}"; IEnumerable <Guid?> result = await Connection.QueryAsync <Guid?>(insertQuery, entity); //EntityType.GetProperty(IdPropertyName)? // .SetValue(entity, result.First()); }
/// <summary> /// Create a list of new entities /// </summary> /// <param name="entities">List of entities</param> /// <returns>Task</returns> public virtual async Task CreateManyAsync(IEnumerable <TEntity> entities) { if (Connection.State != ConnectionState.Open) { Connection.Open(); } var parameters = EntityColumns .Where(c => c != IdPropertyName) .Select(c => "@" + c).ToList(); await Connection.ExecuteAsync( $"EXEC Create{EntityTypeName} {string.Join(",", parameters)}", entities); }
/// <summary> /// Update an existing entity /// </summary> /// <param name="entity">Entity</param> /// <returns>Task</returns> public virtual async Task UpdateAsync(TEntity entity) { if (Connection.State != ConnectionState.Open) { Connection.Open(); } var columns = EntityColumns.Where(s => s != IdPropertyName); var parameters = columns.Select(name => name + "=@" + name).ToList(); var updateQuery = $@"UPDATE {TableName} SET {string.Join(",", parameters)} WHERE {IdPropertyName}=@{IdPropertyName}"; await Connection.ExecuteAsync(updateQuery, entity); }
/// <summary> /// Create a list of new entities /// </summary> /// <param name="entities">List of entities</param> /// <returns>Task</returns> public virtual async Task CreateManyAsync(IEnumerable <TEntity> entities) { try { var insertColumns = EntityColumns.Where(c => !ExcludeProperty.Contains(c)); var insertCommand = $@"INSERT INTO {TableName} ({string.Join(",", insertColumns)}) VALUES (@{string.Join(",@", insertColumns)})"; //IEnumerable<Guid?> result = await Connection.QueryAsync<Guid?>(insertCommand, entities); await Connection.ExecuteAsync(insertCommand, entities.ToList()); } catch { } }
/// <summary> /// Create a new entity /// </summary> /// <param name="entity">Entity</param> /// <returns>Task</returns> public virtual async Task CreateAsync(TEntity entity) { if (Connection.State != ConnectionState.Open) { Connection.Open(); } var parameters = EntityColumns .Where(c => c != IdPropertyName) .Select(c => $"@{c}=@{c}").ToList(); var createCommand = $"EXEC Create{EntityTypeName} {string.Join(",", parameters)}"; IEnumerable <int> result = await Connection.QueryAsync <int>( createCommand, entity); EntityType.GetProperty(IdPropertyName)? .SetValue(entity, result.First()); }