Добавление свойства в шаблон Entity Framework T4

#c# #linq #entity-framework

#c# #linq #entity-framework

Вопрос:

Мне нужно добавить свойство в классы модели, которые генерируются Entity Framework. По этой причине я отредактировал шаблон T4 (файл .tt) и добавил туда дополнительное свойство.

В результате каждый раз, когда я запускаю запрос LINQ к базе данных, я получаю null вместо ожидаемого результата. Без дополнительного свойства все работает нормально.

Я думаю, что это проблема, которую EF обнаруживает при попытке сопоставить строку базы данных с классом модели. Я попытался украсить дополнительное свойство [NotMapped] атрибутом, но это ничего не изменило.

Есть идеи, в чем может быть проблема?

Комментарии:

1. Вы добавили это в .tt? Вы имеете в виду, что хотите добавить это свойство ко всем вашим сущностям? Как выглядит один из созданных вами классов?

2. Да, вы правильно поняли. Созданные классы выглядят так, как обычно, просто у них есть это дополнительное свойство, которое я добавляю.

3. Если бы вы показали одну из сущностей и пример запроса, который работает без дополнительного свойства, а не с ним, мы могли бы вам немного помочь…

Ответ №1:

Я создал небольшой тестовый проект, делающий то же самое (добавляющий свойство ко всем объектам путем изменения шаблона T4), и это сработало просто отлично.

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