Как лучше хранить GUID в базе (тип данных)?
А это тут причём?
migration каталог желательно исследовать
я бы тупо скопировал данные из таблиц с новой генерацией ключей
Я тоже никак не эксперт в базах, просто есть некоторый опыт, ну вот две таблицы, как будет выглядеть копия?
|PK | | | 1 |Test1| | 2 |Test2| |PK | | | | | 1 |Test1|1|2| | 2 |Test2|1|2|
Я чёт не понял. Если БД используют разные СУБД и исключительно их эксклюзивные фишки, то да, могут возникнуть проблемы. Но если всё подчиняется общему SQL, то их по идее не должно быть. А уж если вообще всё в одной СУБД происходит, то тем более.
Причём тут ваши таблички при преобразовании баз - непонятно. Ну я просто скопирую схему БД в новой СУБД (в том же MS SQL даже команда вроде есть создать скрипт создания БД по уже имеющейся БД) и начну копировать данные. В зависимости от наличия и количества связей с другими таблицами, это будет иметь разную сложность, но в принципе выполнимо же? А если есть встроенные механизмы миграции БД на другие СУБД - то вообще хорошо.
А это тут причём?migration каталог желательно исследовать
А почему нельзя взять последний слепок схемы БД и использовать его? Зачем вам история изменений с незапамятных времён? EF же может генерить схему классов ORM по уже имеющейся БД. А там можете дальше дописывать изменения вашими миграциями.
Я не эксперт, но попробовав немного пописать миграции в EF пришёл к выводу, что через какое-то время там просто нечитаемая лапша. Нафига её копить - протоколирование всех изменений - непонятно. Просто начинаешь новую жизнь с чистого листа при переносе БД и всё.
На вот попробуй
-----
Зачем?
Я и так верю что ты знаешь что у мелкомягких ПК - не нулл и уникален....
И даже подозреваю что в курсе как задизейблить констрайнт на тихую вставку дубликата...
ODBC Driver 17 for SQL Server
-----
У тебя корректная обработка этого исключения есть?
А если поменять драйвер? Взять не ОДБС, а MS SQL (native)...
мелкомягких ПК - не нулл и уникален
странно, а отчего sqlite выдает? UNIQUE constraint failed: AspNetRoles.Id
у мелкомягких научились гады? Ломит проверять все базы, но грю, что не помню другого поведения
У тебя корректная обработка этого исключения есть?
Зачем? достаточно того что в базе не будет дубликатов
Взять не ОДБС, а
давай еще попробуем oledb... может там будет разрешено
все базы, но грю, что не помню
-----
А твое ВСЕ включает не реляционные?
Зачем?
------
И шо? или ничаво ня потяряетси, или тоби пофиг на потери...
давай еще попробуем
-----
Я тебе и так скажу - то, что работает с мелкомягким, не будет работать с ораклом - там отдельные ехцепшены...
и у ОДБС ехсептионы, насколько Я помню, отличаются от мсскл-найтивных...
т.е. - качатся, но только сильно обобщенно...
А твое ВСЕ включает не реляционные?
Нет конечно это уже совсем другая история.
то, что работает с мелкомягким, не будет работать с ораклом
можно и с ораклом попробовать, раз sqlite тебе не подходит, только у меня с локальной базой какие то проблемы были.
ОДБС ехсептион
И много кто сейчас новые проекты на ентом делает? Или даже пользует?
Ты лучше скажи - с постгрессом опыт есть? А то он гад отчего то не любит async запросы из EF, которые получаются как бы параллельно (один запрос начался, "выходим" и заходим в другой). С ораклом никаких проблем не было.
Ты лучше скажи - с постгрессом опыт есть? А то он гад отчего то не любит async запросы из EF, которые получаются как бы параллельно (один запрос начался, "выходим" и заходим в другой). С ораклом никаких проблем не было.
Никаких проблем с potgresql-ем не было. Но не из EF. А в чём проблема-то выраваетя, а то, может, ты незакоммиченные изменения найти не можешь?
А в чём проблема-то
Пока как видится на данный момент, еще нужно дальше исследовать.
Блазор сервер, веб приложение, только чтение, несколько компонент, одна в другой.
Один пользователь, всё локально, один контехт базы.
Данные выдаются как IAsyncEnumerable. Одна компонента начинает асинк запрос на чтение базы, потом, по идее идет дальше, переходит в другую и опять начинает асинк запрос на чтение. Вот этот второй запрос и выдает исключение, что мол, типа нефиг вызывать один контекст их двух разных потоков. Но что то непонятно, откуда несколько потоков при отрисовки компоненты, по идее всё в одном ui потоке должно быть. Да и с ораклом то всё работало и работает, с тем же кодом.
...Осталось еще проверить номера потоков, что бы наверняка знать
Лечится либо задержкой между вызовами, либо переделкой на синхронное чтение из базы. Но ни то ни другое, как то не хочется.
Данные выдаются как IAsyncEnumerable. Одна компонента начинает асинк запрос на чтение базы, потом, по идее идет дальше, переходит в другую и опять начинает асинк запрос на чтение. Вот этот второй запрос и выдает исключение, что мол, типа нефиг вызывать один контекст их двух разных потоков. Но что то непонятно, откуда несколько потоков при отрисовки компоненты, по идее всё в одном ui потоке должно быть. Да и с ораклом то всё работало и работает, с тем же кодом.
А с чего бы второму потоку не взяться, если асинхронные операции могут выполняться как в одном потоке, так и в разных?
А вы уверены, что компоненты при отрисовке всё в одном потоке делают, а не каждый свой создаёт? State changed же для каждого компонента (и его подкомпонентов) отдельно выполняется, а значит каждый сам себя перерисовывает.
А в Оракле точно всё асинхронно работало, или там синхронно всё выполняется?
Но что то непонятно, откуда несколько потоков
------
Мне вот непонятно почему ожидается один поток... при асинхронике.
по идее всё в одном ui потоке должно быть.
-----
Хи-хи...
Это ты еще с мелкомягкой многопоточностью в ДотНет не работал...
Там - шикарно... создаешь поток, все нормально... запускаешь, все нормально... получаешь данные, все нормально... пытаешься что-то сделать в созданном потоке - облом... Нее, все работает и управляется, вот только не в том потоке что тобою создан... как? а хрен его знает... чтобы получить что нужно было откатился до примитивного потока - тогда получилось...
не вот непонятно почему ожидается один поток... при асинхронике.
дай описание где написано про много
https://stackoverflow.com/questions/37419572/if-async-awai...
Там - шикарно... создаешь поток, все нормально... запускаешь, все нормально... получаешь данные, все нормально... пытаешься что-то сделать в созданном потоке - облом... Нее, все работает и управляется, вот только не в том потоке что тобою создан... как? а хрен его знает... чтобы получить что нужно было откатился до примитивного потока - тогда получилось...
Это случайно не про обновление UI из рабочего потока?