/
aprogrammer
/
yessql
Обзор
Документация
Войти
/
aprogrammer
/
yessql
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
main
src/YesSql.Core/Commands/CreateDocumentCommand.cs
51 строка
2 KB
Jasmin Savard
Add Schema to SQL Server and PostgreSQL dialect (#418)
28 сен 2022, 22:12
Не верифицирован
28 сен 2022, 22:12
5f57d70
Код
Авторство
О чём код?
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 CreateDocumentCommand : DocumentCommand { private readonly IStore _store; public override int ExecutionOrder { get; } = 0; public CreateDocumentCommand(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 insertCmd = $"insert into {dialect.QuoteForTableName(_store.Configuration.TablePrefix + documentTable, _store.Configuration.Schema)} ({dialect.QuoteForColumnName("Id")}, {dialect.QuoteForColumnName("Type")}, {dialect.QuoteForColumnName("Content")}, {dialect.QuoteForColumnName("Version")}) values (@Id, @Type, @Content, @Version);"; if (logger.IsEnabled(LogLevel.Trace)) { logger.LogTrace(insertCmd); } return connection.ExecuteAsync(insertCmd, Document, transaction); } public override bool AddToBatch(ISqlDialect dialect, List<string> queries, DbCommand batchCommand, List<Action<DbDataReader>> actions, int index) { var documentTable = _store.Configuration.TableNameConvention.GetDocumentTable(Collection); var insertCmd = $"insert into {dialect.QuoteForTableName(_store.Configuration.TablePrefix + documentTable, _store.Configuration.Schema)} ({dialect.QuoteForColumnName("Id")}, {dialect.QuoteForColumnName("Type")}, {dialect.QuoteForColumnName("Content")}, {dialect.QuoteForColumnName("Version")}) values (@Id_{index}, @Type_{index}, @Content_{index}, @Version_{index});"; queries.Add(insertCmd); batchCommand .AddParameter("Id_" + index, Document.Id) .AddParameter("Type_" + index, Document.Type) .AddParameter("Content_" + index, Document.Content) .AddParameter("Version_" + index, Document.Version); return true; } } }