Я скоро начну кодировать новое веб-приложение. Приложение будет построено с использованием ASP.Net MVC 3 и Entity Framework 4.1 (подход Database First). Вместо использования классов EntityObject по умолчанию я создам классы POCO с помощью ADO.NET POCO Entity Generator.Entity Framework POCO Сериализация
Когда я создаю POCOs с помощью этого инструмента, он автоматически добавляет ключевое слово Virtual ко всем свойствам для отслеживания изменений и свойств навигации для ленивой загрузки.
Я, однако, читал и видел из демонстраций, что Джулия Лерман (EF Guru!), Кажется, отключает ленивую загрузку, а также изменяет свой шаблон POCO, чтобы ключевое слово Virtual было удалено из ее классов POCO. Джулия заявляет, почему она это делает, потому что она пишет приложения для служб WCF и использует ключевое слово Virtual, что вызывает проблему с сериализацией. Она говорит, что когда объект сериализуется, сериализатор касается свойств навигации, которые затем запускают ленивую загрузку, и, прежде чем вы это узнаете, вы тянете всю базу данных по проводу.
Я думаю, что Джулия была, возможно, преувеличивать, когда она сказала, что это может вытащить всю базу данных через провод, однако, даже в этом случае эта мысль пугает меня!
Мой вопрос (наконец), следует также удалить ключевое слово Virtual из моих классов POCO для моего приложения MVC и использовать DectectChanges для отслеживания изменений и Eager Loading для запроса свойств навигации.
Ваша помощь в этом была бы принята с благодарностью.
Спасибо, как всегда.