Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Как лучше хранить GUID в базе (тип данных)?

1748  1 2 3 4 все
AlexNek патриот29.04.23 23:25
AlexNek
NEW 29.04.23 23:25 
в ответ alex445 29.04.23 16:39, Последний раз изменено 29.04.23 23:28 (AlexNek)
А это тут причём?

migration каталог желательно исследовать


я бы тупо скопировал данные из таблиц с новой генерацией ключей

Я тоже никак не эксперт в базах, просто есть некоторый опыт, ну вот две таблицы, как будет выглядеть копия?

|PK |     |
| 1 |Test1|
| 2 |Test2|

|PK  |     | | |
| 1  |Test1|1|2|
| 2  |Test2|1|2|
#21 
alex445 коренной житель30.04.23 00:48
NEW 30.04.23 00:48 
в ответ AlexNek 29.04.23 23:25, Последний раз изменено 30.04.23 00:52 (alex445)

Я чёт не понял. Если БД используют разные СУБД и исключительно их эксклюзивные фишки, то да, могут возникнуть проблемы. Но если всё подчиняется общему SQL, то их по идее не должно быть. А уж если вообще всё в одной СУБД происходит, то тем более.


Причём тут ваши таблички при преобразовании баз - непонятно. Ну я просто скопирую схему БД в новой СУБД (в том же MS SQL даже команда вроде есть создать скрипт создания БД по уже имеющейся БД) и начну копировать данные. В зависимости от наличия и количества связей с другими таблицами, это будет иметь разную сложность, но в принципе выполнимо же? А если есть встроенные механизмы миграции БД на другие СУБД - то вообще хорошо.

#22 
alex445 коренной житель30.04.23 00:55
NEW 30.04.23 00:55 
в ответ AlexNek 29.04.23 23:25, Последний раз изменено 30.04.23 00:56 (alex445)
А это тут причём?
migration каталог желательно исследовать

А почему нельзя взять последний слепок схемы БД и использовать его? Зачем вам история изменений с незапамятных времён? EF же может генерить схему классов ORM по уже имеющейся БД. А там можете дальше дописывать изменения вашими миграциями.


Я не эксперт, но попробовав немного пописать миграции в EF пришёл к выводу, что через какое-то время там просто нечитаемая лапша. Нафига её копить - протоколирование всех изменений - непонятно. Просто начинаешь новую жизнь с чистого листа при переносе БД и всё.

#23 
Murr патриот30.04.23 16:21
Murr
NEW 30.04.23 16:21 
в ответ AlexNek 29.04.23 23:14

На вот попробуй

-----

Зачем?

Я и так верю что ты знаешь что у мелкомягких ПК - не нулл и уникален....

И даже подозреваю что в курсе как задизейблить констрайнт на тихую вставку дубликата...


ODBC Driver 17 for SQL Server

-----

У тебя корректная обработка этого исключения есть?

А если поменять драйвер? Взять не ОДБС, а MS SQL (native)...

#24 
AlexNek патриот30.04.23 20:03
AlexNek
NEW 30.04.23 20:03 
в ответ Murr 30.04.23 16:21
мелкомягких ПК - не нулл и уникален

странно, а отчего sqlite выдает? UNIQUE constraint failed: AspNetRoles.Id

у мелкомягких научились гады? Ломит проверять все базы, но грю, что не помню другого поведения смущ


У тебя корректная обработка этого исключения есть?

Зачем? достаточно того что в базе не будет дубликатов


Взять не ОДБС, а

давай еще попробуем oledb... может там будет разрешено



#25 
Murr патриот30.04.23 22:17
Murr
NEW 30.04.23 22:17 
в ответ AlexNek 30.04.23 20:03

все базы, но грю, что не помню

-----

А твое ВСЕ включает не реляционные?


Зачем?

------

И шо? или ничаво ня потяряетси, или тоби пофиг на потери...



давай еще попробуем

-----

Я тебе и так скажу - то, что работает с мелкомягким, не будет работать с ораклом - там отдельные ехцепшены...

и у ОДБС ехсептионы, насколько Я помню, отличаются от мсскл-найтивных...

т.е. - качатся, но только сильно обобщенно...

#26 
AlexNek патриот30.04.23 22:44
AlexNek
NEW 30.04.23 22:44 
в ответ Murr 30.04.23 22:17
А твое ВСЕ включает не реляционные?

Нет конечно это уже совсем другая история.


то, что работает с мелкомягким, не будет работать с ораклом

можно и с ораклом попробовать, раз sqlite тебе не подходит, только у меня с локальной базой какие то проблемы были.


ОДБС ехсептион

И много кто сейчас новые проекты на ентом делает? Или даже пользует?


Ты лучше скажи - с постгрессом опыт есть? А то он гад отчего то не любит async запросы из EF, которые получаются как бы параллельно (один запрос начался, "выходим" и заходим в другой). С ораклом никаких проблем не было.

#27 
AlexNek патриот30.04.23 22:49
AlexNek
NEW 30.04.23 22:49 
в ответ alex445 30.04.23 00:55
EF же может генерить схему классов ORM по уже имеющейся БД

надо было как раз наоборот, софт должен остаться "неизменным". Еде долго еще пришлось искать отчего два контехта одновременно не хотели работать, вместе с одним базовым классом.


#28 
Murr патриот01.05.23 05:24
Murr
NEW 01.05.23 05:24 
в ответ AlexNek 30.04.23 22:44

с постгрессом опыт есть?

------

Одна инсталляция... лет 25 назад... только инсталляция...


не любит async запросы из

------

Не помню. У МС СКЛ есть монопольный режим - там только последовательное выполнение и только одного пользователя.

#29 
MrSanders коренной житель01.05.23 16:40
NEW 01.05.23 16:40 
в ответ AlexNek 30.04.23 22:44
Ты лучше скажи - с постгрессом опыт есть? А то он гад отчего то не любит async запросы из EF, которые получаются как бы параллельно (один запрос начался, "выходим" и заходим в другой). С ораклом никаких проблем не было.

Никаких проблем с potgresql-ем не было. Но не из EF. А в чём проблема-то выраваетя, а то, может, ты незакоммиченные изменения найти не можешь?

#30 
AlexNek патриот01.05.23 18:02
AlexNek
NEW 01.05.23 18:02 
в ответ MrSanders 01.05.23 16:40
А в чём проблема-то

Пока как видится на данный момент, еще нужно дальше исследовать.

Блазор сервер, веб приложение, только чтение, несколько компонент, одна в другой.

Один пользователь, всё локально, один контехт базы.

Данные выдаются как IAsyncEnumerable. Одна компонента начинает асинк запрос на чтение базы, потом, по идее идет дальше, переходит в другую и опять начинает асинк запрос на чтение. Вот этот второй запрос и выдает исключение, что мол, типа нефиг вызывать один контекст их двух разных потоков. Но что то непонятно, откуда несколько потоков при отрисовки компоненты, по идее всё в одном ui потоке должно быть. Да и с ораклом то всё работало и работает, с тем же кодом.

...Осталось еще проверить номера потоков, что бы наверняка знать

Лечится либо задержкой между вызовами, либо переделкой на синхронное чтение из базы. Но ни то ни другое, как то не хочется.

#31 
alex445 коренной житель01.05.23 19:30
NEW 01.05.23 19:30 
в ответ AlexNek 01.05.23 18:02
Данные выдаются как IAsyncEnumerable. Одна компонента начинает асинк запрос на чтение базы, потом, по идее идет дальше, переходит в другую и опять начинает асинк запрос на чтение. Вот этот второй запрос и выдает исключение, что мол, типа нефиг вызывать один контекст их двух разных потоков. Но что то непонятно, откуда несколько потоков при отрисовки компоненты, по идее всё в одном ui потоке должно быть. Да и с ораклом то всё работало и работает, с тем же кодом.

А с чего бы второму потоку не взяться, если асинхронные операции могут выполняться как в одном потоке, так и в разных?


А вы уверены, что компоненты при отрисовке всё в одном потоке делают, а не каждый свой создаёт? State changed же для каждого компонента (и его подкомпонентов) отдельно выполняется, а значит каждый сам себя перерисовывает.


А в Оракле точно всё асинхронно работало, или там синхронно всё выполняется?

#32 
AlexNek патриот01.05.23 19:52
AlexNek
NEW 01.05.23 19:52 
в ответ alex445 01.05.23 19:30
А вы уверены, что компоненты при отрисовке всё в одном потоке делают

В ошибке даже не про потоки сказано, просто как наиболее вероятная причина. Именно это и хотел проверить.

#33 
Murr патриот01.05.23 20:03
Murr
NEW 01.05.23 20:03 
в ответ AlexNek 01.05.23 18:02

Но что то непонятно, откуда несколько потоков

------

Мне вот непонятно почему ожидается один поток... при асинхронике.


по идее всё в одном ui потоке должно быть.

-----

Хи-хи...

Это ты еще с мелкомягкой многопоточностью в ДотНет не работал...

Там - шикарно... создаешь поток, все нормально... запускаешь, все нормально... получаешь данные, все нормально... пытаешься что-то сделать в созданном потоке - облом... Нее, все работает и управляется, вот только не в том потоке что тобою создан... как? а хрен его знает... чтобы получить что нужно было откатился до примитивного потока - тогда получилось...

#34 
Murr патриот01.05.23 20:06
Murr
NEW 01.05.23 20:06 
в ответ AlexNek 01.05.23 19:52

В ошибке даже не про потоки

-----

Так может по старинке - пример минимального кода и полную ошибку? спок

#35 
AlexNek патриот01.05.23 20:13
AlexNek
NEW 01.05.23 20:13 
в ответ Murr 01.05.23 20:06
и полную ошибку?

фигвамс - логин испортился, вышел гад уже на битлокер, никакого доступа нет к рабочему лаптю, как и к рабочему веб логину.


Хотел как раз логи добавить, чтобы треад ид глянуть, и скреншоты сделать

#36 
AlexNek патриот01.05.23 20:20
AlexNek
NEW 01.05.23 20:20 
в ответ Murr 01.05.23 20:03
не вот непонятно почему ожидается один поток... при асинхронике.

дай описание где написано про много смущ

https://stackoverflow.com/questions/37419572/if-async-awai...

#37 
AlexNek патриот01.05.23 20:23
AlexNek
NEW 01.05.23 20:23 
в ответ alex445 01.05.23 19:30
А в Оракле точно всё асинхронно работало, или там синхронно всё выполняется?

Я могу относительно просто переключить пг на оракле и наоборот, просто конфиг нужно изменить немного.

С ораклом как работало так и работает, а с пг фиг вам.

#38 
alex445 коренной житель01.05.23 20:28
NEW 01.05.23 20:28 
в ответ Murr 01.05.23 20:03
Там - шикарно... создаешь поток, все нормально... запускаешь, все нормально... получаешь данные, все нормально... пытаешься что-то сделать в созданном потоке - облом... Нее, все работает и управляется, вот только не в том потоке что тобою создан... как? а хрен его знает... чтобы получить что нужно было откатился до примитивного потока - тогда получилось...

Это случайно не про обновление UI из рабочего потока?

#39 
Murr патриот01.05.23 21:09
Murr
NEW 01.05.23 21:09 
в ответ AlexNek 01.05.23 20:20

дай описание где написано про много

------

Увы, но нету... есть - на уровне ощущений/пониманий...

#40 
1 2 3 4 все