[Linq2Db] Как писать результирующие запросы в лог и НЕ выполнять в базу
От: EM Великобритания  
Дата: 03.06.20 14:36
Оценка:
Hi all,

subj.
Вижу DataConnection.TurnTraceSwitchOn() но еще хотелось бы чтоб он в базу не писал.
И еще бы в идеале чтобы он умел логировать готовый к исполнению SQL без таймстампов и прочего
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Re: [Linq2Db] Как писать результирующие запросы в лог и НЕ выполнять в базу
От: Danchik Украина  
Дата: 03.06.20 16:22
Оценка:
Здравствуйте, EM, Вы писали:


EM>Hi all,


EM>subj.

EM>Вижу DataConnection.TurnTraceSwitchOn() но еще хотелось бы чтоб он в базу не писал.
EM>И еще бы в идеале чтобы он умел логировать готовый к исполнению SQL без таймстампов и прочего

В чем проблема?
_logger.Log(query.ToString());
Re[2]: [Linq2Db] Как писать результирующие запросы в лог и НЕ выполнять в базу
От: EM Великобритания  
Дата: 04.06.20 10:28
Оценка:
Здравствуйте, Danchik, Вы писали:

D>Здравствуйте, EM, Вы писали:



EM>>Hi all,


EM>>subj.

EM>>Вижу DataConnection.TurnTraceSwitchOn() но еще хотелось бы чтоб он в базу не писал.
EM>>И еще бы в идеале чтобы он умел логировать готовый к исполнению SQL без таймстампов и прочего

D>В чем проблема?

D>
D>_logger.Log(query.ToString());
D>


Я написал утилиту в которой много (сотни) инсертов в базу.
Хотелось бы вместо натравливания ее на production получить из нее sql script и потом его выполнить.
Возможно ли это сделать более элегантно, чем лезть в исходники и там менять Insert на запись в лог?
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Re[3]: [Linq2Db] Как писать результирующие запросы в лог и НЕ выполнять в базу
От: Danchik Украина  
Дата: 04.06.20 19:20
Оценка: 6 (1)
Здравствуйте, EM, Вы писали:

EM>Здравствуйте, Danchik, Вы писали:


D>>Здравствуйте, EM, Вы писали:



EM>>>Hi all,


EM>>>subj.

EM>>>Вижу DataConnection.TurnTraceSwitchOn() но еще хотелось бы чтоб он в базу не писал.
EM>>>И еще бы в идеале чтобы он умел логировать готовый к исполнению SQL без таймстампов и прочего

D>>В чем проблема?

D>>
D>>_logger.Log(query.ToString());
D>>


EM>Я написал утилиту в которой много (сотни) инсертов в базу.

EM>Хотелось бы вместо натравливания ее на production получить из нее sql script и потом его выполнить.
EM>Возможно ли это сделать более элегантно, чем лезть в исходники и там менять Insert на запись в лог?

Надо дописывать.
Но на всякий случай таких утилит как грязи. Конкретней для чего вам понадобилось?
Сам linq2db умеет BulkCopy. Посмотрите в исходниках есть режим MultipleRows, также гляньте как отрубить параметры. Возможно пригодится и мы сделаем для этого API.
Re: [Linq2Db] Как писать результирующие запросы в лог и НЕ выполнять в базу
От: B7_Ruslan  
Дата: 05.06.20 09:44
Оценка:
Здравствуйте, EM, Вы писали:


EM>Hi all,


EM>subj.

EM>Вижу DataConnection.TurnTraceSwitchOn() но еще хотелось бы чтоб он в базу не писал.
EM>И еще бы в идеале чтобы он умел логировать готовый к исполнению SQL без таймстампов и прочего

Можно транзакцию откатить. Или надо чтобы вообще не отсылал команды?
Re[4]: [Linq2Db] Как писать результирующие запросы в лог и НЕ выполнять в базу
От: EM Великобритания  
Дата: 05.06.20 20:13
Оценка:
Здравствуйте, Danchik, Вы писали:


D>Надо дописывать.

D>Но на всякий случай таких утилит как грязи. Конкретней для чего вам понадобилось?

чисто по бюрократическим причинам.
Я чтобы познакомиться с linq2db решил на ней написать небольшую одноразовую миграционную утилитку для Brexit-a
на пару тысяч строк. А потом я понял сколько аппрувалов надо получать чтобы запустить ее на production базе
Вот и захотелось родить из нее старый добрый SQL скрипт
Опыт — это такая вещь, которая появляется сразу после того, как была нужна...
Re[5]: [Linq2Db] Как писать результирующие запросы в лог и НЕ выполнять в базу
От: Danchik Украина  
Дата: 06.06.20 10:26
Оценка:
Здравствуйте, EM, Вы писали:

EM>Здравствуйте, Danchik, Вы писали:



D>>Надо дописывать.

D>>Но на всякий случай таких утилит как грязи. Конкретней для чего вам понадобилось?

EM>чисто по бюрократическим причинам.

EM>Я чтобы познакомиться с linq2db решил на ней написать небольшую одноразовую миграционную утилитку для Brexit-a
EM>на пару тысяч строк. А потом я понял сколько аппрувалов надо получать чтобы запустить ее на production базе
EM>Вот и захотелось родить из нее старый добрый SQL скрипт

Кстати неплохой кейс для библиотеки.
Я сам постоянно использую ее в режиме: взять пару здоровенных таблиц из одной базы например Postgres, перегнать быстро в MemSql, проверить те же самые LINQ запросы на другом движке практически без переписывания. Быстро глянуть есть ли профит. Отрапортовать — покупайте (или нет), оно дает вам то что надо.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.