AlexVWill, не так на самом деле страшен черт, как его малюют)
в студенчестве пересобирал ядро на единственном ноуте (в стоковом не было звука и вайфай), по распечатанной на принтере инструкции - было страшновато конечно, но все получилось.
Но в случае с BT конечно проще купить еще один ugreen, который работает.
eugene159, обратная совместимость у BT на уровне самого BT, а тут речь о том, что одно USB устройство в линухе работает, а второе - нет.
В данном случае причина скорее всего в том, что девайс слишком новый.
По VID:PID нагуглился топик (читал с переводчиком хрома), но я так понимаю не завели.
Можно попробовать более свежий дистр в виртуалке, например 24.04 daily build, или собрать последнее ядро из исходников (так например на свежем ноуте поднимал звук).
Разрезать приложение, вынести бота в отдельный проект (библиотека классов).
Т.е. WebApp1 тянет BotLib как зависимость и ConsoleApp2 тянет BotLib как зависимость.
P.S. WebApplication это то же самое консольное приложение, которое в main собирает WebApplication при помощи билдера, конфигурирует его и запускает.
Если очень упрощать, то внутри app.Run() сидит что-то вида while(true) и в цикле реагирует на запросы, команды ОС и прочие внешние раздражители.
Mirozr, смотрите логи (ядра - dmesg, на предмет ошибок, роутера - на предмет обмена между адаптером и роутером), попробуйте завести отдельную виртуалку и там протестить адаптер в последней LTS Ubuntu.
При помощи lsmod посмотрите, какой модуль для вашего адаптера сейчас загружен.
Kali-user'ы к сожалению думают что каждый их кейс уникален, хотя весь инет уже десяток лет исписан инструкциями, почему именно нельзя с виртуалки хакать вафли ноутбучным адаптером и пошаговыми гайдами как с этим жить.
А у старожилов Q&A глаз дергается от этих вопросов, особенно когда новоиспеченный kali-user не понимает как линукс и виртуалка в принципе устроены.
Подпишусь, тоже интересно.
Первое что приходит на ум - исполнять селект и мапить руками, подставляя имя таблицы.
Второе - в DbContext реализовать метод GetDbSet, который достанет DbSet (или IQueryable) нужного типа.
rollabushka, в общем случае это небезопасно: если транзакция реально длинная, то создается огромного размера транзакшн лог, хранящий собственно информацию, необходимую для корректного завершения или отката, что дает высокую нагрузку на сервер.
есть вариант нарезать данные на чанки, связанные внутри чанка, но сами чанки независимые друг от друга?
Pro_Code, я бы предложил docker compose с тремя контейнерами: nginx, site1, site2
первый слушает 80 (и 443 если надо) и роутит запросы на порты, которые в свою очередь слушают site1 и site2.
При установке убунта спрашивает, куда ставить загрузчик. куда ставили?
Для легаси диск должен быть размечен в MBR, установлен загрузчик не в раздел а на диск (собстна в мбр, 512 байт, первый сектор диска), и с этого диска надобно грузиться.
qw1klyy, ответьте (прежде всего сами себе) что такое данные в боте? храните ли вы состояние, и если да, то где? Хорошим тоном при запросе будет смотреть в базу на предмет обновленных данных.
Если вам нужно по событию изменения данных в БД некой внешней системой выполнять действия в боте, то можно сделать в базе триггер, который по интересующему событию дернет хук вашего бота.
по моему это не очень уточняющий вопрос и выглядит как "И чё хочет эта челядь ?"
Не судите строго, на Q&A ежедневно пишутся вопросы, автор которых хочет либо странного, либо сам не вполне понимает чего хочет. Как видите, после уточнения стало сразу стало понятнее, чего хотите вы, и что не получается.
Поймите главное, в голове у собеседников нет контекста Вашей задачи, и перед глазами собеседника нет экрана с Вашей базой и прочим: поэтому максимальное количество вводных, что хотите, что сделали для этого, что не получилось.
ну не знаю поймёте ли вы, если скажу что хочу получить из запроса тройной массив
не вполне, тройной массив не знаю: но если понимать как массив из трех элементов, то вам нужна аггрегатная функция ARRAY_AGG, о чем собственно Adamos и писал выше.
holllop, смотрите, все очень и очень просто:
вы хотите вывести o.order_id, w.id_work, e.n_plan, при этом уникальных order_id у вас 3.
Но проблема в том, что уникальных w.id_work у вас 5, и посгря без подсказки понятия не имеет, как 5 запихнуть в 3.
И эту подсказку в запросе необходимо указать.
Собственно ошибка "столбец "w.id_work" должен фигурировать в предложении GROUP BY или использоваться в агрегатной функции" о том и говорит.
что можно сделать:
GROUP BY w.id_work и 5 в 3 запихивать на стороне клиента базы
исключить w.id_work из запроса
придумать, найти (если есть) или написать (если нет) соответствующую аггрегатную функцию (к примеру, конкатенировать w.id_work через точку с запятой и возвращать клиенту стрингу)
P.S. хамить на уточняющие вопросы - харам. То что вы называете "многовложенность или хз как это называется" - это и есть аггрегатные функции. Самый простой пример SUM() или COUNT().
Для более конкретного ответа опишите логику, в каком виде вы хотите получить несколько w.id_work у одного o.order_id в выборке.
Не имел дел со Spring Boot, но на ASP .NET Core неплохо работает следующая схема:
В шареной либе описываем модель ошибки, коды сообщений, сообщения и их локализацию, если надо.
Там же описываем middleware для обработки ошибок.
В сервисах встраиваем middleware в пайп обработки запроса, и теперь в любом месте можно сделать throw MyCustomEx(ErrCode.SOMETHING_WENT_WRONG);
Еще можно в middleware обработки ошибок через DI контейнер добавлять специфичные для сервера коды и сообщения, чтобы не держать их в общей библиотеке.
#, лучше так, чем в условном фортране, где вот такой пример совершенно легален
integer i ! не инициализировано, автоматом не зануляет, условно i = 0xdeadbeef
i = i + 1 ! обычный инкремент
print(i) ! конечно же не 1, а 0xdfadbeef или 0xdeadbef0 в зависимости от byte order
в студенчестве пересобирал ядро на единственном ноуте (в стоковом не было звука и вайфай), по распечатанной на принтере инструкции - было страшновато конечно, но все получилось.
Но в случае с BT конечно проще купить еще один ugreen, который работает.