Entity Framework 6.0 не автогенерирует частичные методы «On Changing» или «On Change» для полей таблицы

entity-framework-6

Вопрос

Я создаю классы инфраструктуры сущностей из таблицы SQL Server. Однако я не вижу частичных методов, подобных приведенному ниже примеру:

partial void OnFirstNameChanging(global::System.String value);
partial void OnFirstNameChanged();

Я использую VS2012 и EF6.0. Многие онлайн-примеры говорят о чрезмерном устранении этих частичных методов во вновь созданных частичных классах, чтобы поставить логику проверки. Но я не могу найти эти методы в своем автогенерированном коде. Это что-то, что добавлено вручную в EF6.0? Полюбуйтесь обратной связью. Благодарю.

Популярные ответы

Вы используете неправильный генератор. Эти методы генерируются только генератором на основе EntityObject (тот, который устарел). Генератор по умолчанию использует классы POCO, где эти частичные методы не генерируются - вы можете модифицировать генератор для их добавления (это шаблон T4).

Чтобы использовать генератор EntityObject :

  • Удалите текущий файл .tt, расположенный под вашим EDMX.
  • Откройте EDMX, щелкните правой кнопкой мыши в дизайнере и выберите Добавить элемент генерации кода из контекстного меню.
  • Если вы не видите EF 6.x EntityObject Generator в Visual C # Items, выберите « Интернет» и выполните поиск этого генератора.
  • Установите генератор и используйте его.
  • Теперь ваши сгенерированные объекты должны поддерживать эти частичные методы.

Открытие файла .TT и поиск Изменения и Изменены слова дадут вам и идею , что необходимо делать в случае добавления этих методов к генератору POCO.




Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему
Лицензировано согласно: CC-BY-SA with attribution
Не связан с Stack Overflow
Является ли этот КБ законным? Да, узнайте, почему