Привет всем,
Обнаружил, что метод Insert при вставке записи в таблицу с автоинкрементным ключем и заданным значением все равно вставляет новый ключ.
Попробовал обойти и вставлять с помощью
Connection.BulkCopy(new BulkCopyOptions() { KeepIdentity = true }, result);
Записи вставились как надо, но обнаружилась следующая ошибка. При вставке через BulkCopy записи с типом дата вставляются в формате "2023-10-01" и в этом случае
при запросе between '2023-10-01' and '2023-10-30' записи с датой 2023-10-01 в интервал не попадают.
А вот если даты будут в базе в формате "2023-10-01 00:00:00" (просто Insert их в таком виде и вставляет) то тогда попадают.
Причем выполнение запроса вручную возвращает все записи, а в программе их уже нет.
Здравствуйте, bisoft, Вы писали:
B>Привет всем,
B> Обнаружил, что метод Insert при вставке записи в таблицу с автоинкрементным ключем и заданным значением все равно вставляет новый ключ.
B>Попробовал обойти и вставлять с помощью
B>B>Connection.BulkCopy(new BulkCopyOptions() { KeepIdentity = true }, result);
B>
B>Записи вставились как надо, но обнаружилась следующая ошибка. При вставке через BulkCopy записи с типом дата вставляются в формате "2023-10-01" и в этом случае
B>при запросе between '2023-10-01' and '2023-10-30' записи с датой 2023-10-01 в интервал не попадают.
B>А вот если даты будут в базе в формате "2023-10-01 00:00:00" (просто Insert их в таком виде и вставляет) то тогда попадают.
B>Причем выполнение запроса вручную возвращает все записи, а в программе их уже нет.
https://linq2db.github.io/articles/sql/Bulk-Copy.html#options от субд зависит. сравнение дат может зависеть от таймзоны.
Здравствуйте, Разраб, Вы писали:
Р>https://linq2db.github.io/articles/sql/Bulk-Copy.html#options от субд зависит. сравнение дат может зависеть от таймзоны.
да я понимаю, что зависит, но ошибка именно в том, что если в поле DateTime2 даты записаны со временем хотя бы "00:00:00" то все работает, а если без, то не работает.
Insert всегда вставляет даты со временем и все работает, а вот Bulk-Copy вставляет без времени и between не включает граничные даты