Наш проект EF6 использует SQL Сервер и написан для соответствия этой БД. Теперь мы должны внести изменения, чтобы он мог работать с Oracle. Я немного застрял в части со схемой.
Мы определяем схемы с помощью DataAnotations
(над именем класса) и используем много схем. Oracle обрабатывает схемы по-разному (пользователь = схема), поэтому я должен изменить схему.
Я попытался установить это в OnModelCreating()
:
modelBuilder.HasDefaultSchema = "ORACLEDBUSERNAME"
Но, очевидно, специфика, определенная DataAnnotations
, не может быть переопределена HasDefaultSchema
. Так что я думаю, что мне нужно использовать что-то вроде modelBuilder.Types().Configure(some_code_to_remove_or_override_dataanotations)
?
По крайней мере, это мое предположение ... Имейте в виду, что я не могу нацелиться на конкретную c сущность или таблицу, так как я применяю это для каждой сущности / таблицы. Все примеры, которые я нахожу, объясняют, как вносить изменения в определенную сущность, такую как modelBuilder.Entity<Person>().HasTableAnotations(etc...)
, и это не работает для меня, так как я хочу применить схему к каждой сущности, которая у меня есть.