Как воспроизвести SQL -запросы, сгенерированные Orm Nhibernate?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как воспроизвести SQL -запросы, сгенерированные Orm Nhibernate?

Сообщение Anonymous »

В приложении C#, используя Nhibernate & Fluent nhibernate, мы стремимся захватить определенную вставку, обновление, удаление запросов, выполняемых в базе данных SQLite, чтобы воспроизвести их.
Мы хотели бы повторить только определенные Запросы, которые влияют на определенные типы объектов. < /p>
После нескольких поисков и тестов мы не нашли способ сделать это. Interceptor, а также слушатели, но ни одно решение, кажется, не работает.
Используется перехватчик для извлечения сгенерированного SQL, но нам не хватает контекста для его приложения.
Слушатели (ipostinserteventlistener, ipostupdateeventListener, ipostdeleteevitester) Больше параметров, но мы не можем найти способ получить необработанный запрос SQL. контекст объекта, на которой была выполнена операция. < /p>

Код: Выделить всё

public override SqlString OnPrepareStatement(SqlString sql)
{
// Only raw SQL
Console.WriteLine(sql);
return base.OnPrepareStatement(sql);
}
и, используя слушатели , мы получаем гораздо больше информации, мы можем понять контекст и объект, который изменяется, но мы не можем найти созданный SQL. < /p>

Код: Выделить всё

    public class QueryListener(Configuration cfg) : IPreUpdateEventListener, IPostUpdateEventListener, IPreInsertEventListener, IPostInsertEventListener
{
public void Register()
{
cfg.EventListeners.PreUpdateEventListeners = [.. cfg.EventListeners.PreUpdateEventListeners, this];
cfg.EventListeners.PostUpdateEventListeners = [.. cfg.EventListeners.PostUpdateEventListeners, this];
cfg.EventListeners.PreInsertEventListeners = [.. cfg.EventListeners.PreInsertEventListeners, this];
cfg.EventListeners.PostInsertEventListeners = [.. cfg.EventListeners.PostInsertEventListeners, this];
}

public void OnPostUpdate(PostUpdateEvent @event)
{
// Capture SQL here ?
}

public bool OnPreUpdate(PreUpdateEvent @event)
{
// Capture SQL here ?
return false;
}

public bool OnPreInsert(PreInsertEvent @event)
{
// Capture SQL here ?
return false;
}

public void OnPostInsert(PostInsertEvent @event)
{
// Capture SQL here ?
}

#region Async methods
public Task OnPostUpdateAsync(PostUpdateEvent @event, CancellationToken cancellationToken)
{
OnPostUpdate(@event);
return Task.CompletedTask;
}

public Task OnPreUpdateAsync(PreUpdateEvent @event, CancellationToken cancellationToken)
{
return Task.FromResult(OnPreUpdate(@event));
}

public Task OnPreInsertAsync(PreInsertEvent @event, CancellationToken cancellationToken)
{
return Task.FromResult(OnPreInsert(@event));
}

public Task OnPostInsertAsync(PostInsertEvent @event, CancellationToken cancellationToken)
{
OnPostInsert(@event);
return Task.CompletedTask;
}
#endregion
}
В идеале мы хотели бы воспроизвести механизм Delta, предложенный Syncframework (https://github.com/egarim/syncframework/tree/main).
Заранее спасибо за вашу помощь!

Подробнее здесь: https://stackoverflow.com/questions/794 ... nhibernate
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как воспроизвести SQL -запросы, сгенерированные Orm Nhibernate?
    Anonymous » » в форуме C#
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Сгенерированные сгенерированные документы отсутствуют символы в соответствующем шаблоне
    Anonymous » » в форуме C#
    0 Ответы
    8 Просмотры
    Последнее сообщение Anonymous
  • Запросы NHibernate linq на обновления не учитывают транзакцию фиксации
    Гость » » в форуме C#
    0 Ответы
    58 Просмотры
    Последнее сообщение Гость
  • Запросы NHibernate linq на обновления не учитывают транзакцию фиксации
    Гость » » в форуме C#
    0 Ответы
    48 Просмотры
    Последнее сообщение Гость
  • Запросы NHibernate linq на обновления не учитывают транзакцию фиксации
    Гость » » в форуме C#
    0 Ответы
    47 Просмотры
    Последнее сообщение Гость

Вернуться в «C#»