2012-05-24 2 views
2

Я использую структуру сущности с первым подходом базы данных, а также EF 4.x DBContext Generator. Все мои классы объектов имеют свойства навигации, которые отмечены как «виртуальные». Я хочу удалить виртуальное ключевое слово из всех моих классов сущностей. Существует около 350 классов объектовEntity Framework - Удаление виртуального ключевого слова из свойств навигации

+5

Какой вопрос? – dknaack

ответ

3

Вы должны изменить файл шаблона T4 (.tt), чтобы удалить виртуальное ключевое слово.

+0

Какой файл (.tt) должен быть изменен для достижения того же – aforank

+0

Файл Model1.tt должен быть изменен для достижения того же. Удалить виртуальный номер строки 255 – aforank

+0

Я использую VS2015, где я могу найти этот файл Model1.tt или T4, о котором вы говорите? – Charlesliam

2

Удаление виртуального означает, что вы не можете использовать ленивую загрузку для рамки сущности. На мой взгляд, ленивая загрузка имеет очень ограниченный объем и в основном используется неправильно (что часто приводит к проблемам с производительностью). Однако имейте в виду, что при отключении вы можете настроить свой код для ручной загрузки дополнительных свойств навигации при извлечении данных. Вы можете сделать это, используя. Include в вашем запросе EF

Чтобы удалить виртуальный флаг, вероятно, вам необходимо отключить ленивую загрузку в генераторе EF.

+0

Отключение ленивой загрузки не удаляет «виртуальное» ключевое слово из свойств навигации. Насколько я знаю, «виртуальный» также отвечает за эффективное отслеживание изменений. – aforank

+0

@ user1373280 virtual также используется для прокси-объектов, однако для этого необходимо украсить * все * свойства объекта, а не только свойства навигации. –

1

Вы можете попробовать это расширение VS, он добавляет (среди прочего) точный контроль над виртуальным модификатора: EF Designer Extender

Смежные вопросы