/
aprogrammer
/
yessql
Обзор
Документация
Войти
/
aprogrammer
/
yessql
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/YesSql.Core/Commands/DeleteDocumentCommand.cs
44 строки
2 KB
Sébastien Ros
Remove distinct usage in queries (#432)
03 дек 2022, 04:28
Не верифицирован
03 дек 2022, 04:28
aa87d8f
Код
Авторство
О чём код?
using Dapper; using Microsoft.Extensions.Logging; using System; using System.Collections.Generic; using System.Data.Common; using System.Threading.Tasks; namespace YesSql.Commands { public sealed class DeleteDocumentCommand : DocumentCommand { private readonly IStore _store; public override int ExecutionOrder { get; } = 4; public DeleteDocumentCommand(Document document, IStore store, string collection) : base(document, collection) { _store = store; } public override Task ExecuteAsync(DbConnection connection, DbTransaction transaction, ISqlDialect dialect, ILogger logger) { var documentTable = _store.Configuration.TableNameConvention.GetDocumentTable(Collection); var deleteCmd = $"delete from {dialect.QuoteForTableName(_store.Configuration.TablePrefix + documentTable, _store.Configuration.Schema)} where {dialect.QuoteForColumnName("Id")} = @Id;"; if (logger.IsEnabled(LogLevel.Trace)) { logger.LogTrace(deleteCmd); } return connection.ExecuteAsync(deleteCmd, Document, transaction); } public override bool AddToBatch(ISqlDialect dialect, List<string> queries, DbCommand command, List<Action<DbDataReader>> actions, int index) { var documentTable = _store.Configuration.TableNameConvention.GetDocumentTable(Collection); var deleteCmd = $"delete from {dialect.QuoteForTableName(_store.Configuration.TablePrefix + documentTable, _store.Configuration.Schema)} where {dialect.QuoteForColumnName("Id")} = @Id_{index};"; queries.Add(deleteCmd); command.AddParameter($"Id_{index}", Document.Id); return true; } } }