Я пытаюсь выполнить обновление с .NET 7 до .NET 8. У меня настроена EF с приоритетом базы данных. Тип некоторых значений изменяется на значения перечисления через мой T4.
В .NET 7 все это работает прекрасно. Некоторые из этих значений также имеют ограничения по умолчанию в нашей базе данных. В EF Core 8 шаблон формирования решает, что вместо использования HasDefaultValueSql (что было бы правильно в 100 % случаев, поскольку значение по умолчанию находится в базе данных) ему следует использовать HasDefalutValue, что не является исправлено для значений now-enum. Та же проблема, что и у этого парня на GitHub, для более подробного контекста.
Есть ли способ в T4 или иным образом программно заменить HasDefaultValue на HasDefaultValueSql?< /p>
В настоящее время для нас это кардинальное изменение, несмотря на то, что оно не указано в списке критических изменений EF Core 8.
Прежде чем вы предложите это, да, я знаю, что полное удаление ограничений по умолчанию - это решение, однако это не то, что хотят сделать власти, или что я действительно хочу сделать в этом отношении.
Я попытался полностью удалить строку HasDefaultValue, что мне удалось сделать из T4, однако это не решило проблему. Я попытался заменить строку HasDefaultValue на HasDefaultValueSql в шаблоне T4, но это, похоже, ничего не дало:
propertyFluentApiCalls.Method.Replace("HasDefaultValue", "HasDefaultValueSql");
Подробнее здесь: https://stackoverflow.com/questions/787 ... -ef-core-8
Используйте T4 для замены HasDefaultValue на HasDefaultValueSql в EF Core 8. ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Что такое атрибут Entity Framework Core, эквивалентный HasDefaultValueSql modelBuilder?
Anonymous » » в форуме C# - 0 Ответы
- 12 Просмотры
-
Последнее сообщение Anonymous
-