Entity Framework не генерирует классы сущностей

  • Entity Framework: 6.4
  • Управляемый доступ к данным Oracle: 19,7
  • Платформа Oracle Managed Data Access Entity Framework: 19,7
  • Visual Studio: 2019
  • База данных Oracle: 11 г

Мастер Entity Framework работает без проблем, но после того, как я нажму кнопку «Готово», через пару секунд загрузки я получаю следующее:

введите описание изображения здесь

Model.tt не сгенерировал никаких классов, и в окне вывода все, что он говорит, были ли ошибки, проверьте Model.edmx, но эти ошибки связаны с тем, что он не может сгенерировать классы для некоторых представлений без первичных ключей, и это ошибки, которые я получить даже тогда, когда он генерирует остальные таблицы в порядке.

Ошибка, вероятно, в базе данных, поскольку она генерирует модель для более старой версии схемы. Я пробовал переустановить Entity Framework, создавая на разных машинах ... Один раз я отбросил несколько новых добавленных процедур, и ему удалось сгенерировать модель, но во второй раз, когда я повторно импортировал схему и снова отбросил те же процедуры, это не удалось.

Я не знаю, изменилось ли что-нибудь в новых версиях Oracle, но работа с Entity на 11g была головной болью.

РЕДАКТИРОВАТЬ: И Я ХОЧУ ЗНАТЬ, КТО ВИНОВАТ!


person Savo Pejović    schedule 30.04.2020    source источник


Ответы (2)


Пожалуйста, попробуйте эти шаги

  1. Удалите Entity Framework: 6.4
  2. Удалить Edmx (Model.edmx)
  3. Добавить новый Edmx (Model.edmx) (при условии, что вы уже подключились к базе данных), VS 2019 автоматически добавит ссылку на Entity Framework 5
  4. Обновите Entity Framework 5 до последней версии
person spajce    schedule 30.04.2020
comment
Эй, это все тот же результат. Я должен был упомянуть, что пробовал это раньше на EF 5.0, но это не сработало. Только на этот раз я позволил VS добавить EF, как вы сказали. - person Savo Pejović; 30.04.2020
comment
тогда, может быть, что-то не так с библиотеками oracle на EF, не могли бы вы проверить совместимость библиотек? - person spajce; 30.04.2020
comment
Ну, Nuget говорит, что EF должен работать с перечисленными выше версиями. У меня были проблемы с аварийным завершением работы мастера на EF4 и Oracle ODAC 12.xx, но я не хочу возвращаться к поиску версий ... - person Savo Pejović; 30.04.2020
comment
Что касается версий, я на 100% уверен, что он работает с текущей версией библиотек на более старой схеме. - person Savo Pejović; 30.04.2020

Нашел.

...

После каждого изменения между новой и старой схемами я обнаружил, что существуют ограничения внешнего ключа с разными типами, ЧИСЛО (1) и ЧИСЛО (10). Я знал раньше, что EF не поддерживает это, так что спасибо за это.

Почему это должно было сломать модельное поколение, я не знаю. Только если было сообщение об ошибке ...

person Savo Pejović    schedule 30.04.2020
comment
поздравляю! первичный ключ в edmx очень важен, вы можете его искать и почему это важно - person spajce; 30.04.2020