Влияет ли virtual
ключевое слово на свойства в EF Code First ?. Может ли кто-нибудь описать все его последствия в разных ситуациях?
Например, я знаю, что он может управлять отложенной загрузкой - если вы используете виртуальное ключевое слово в свойстве отношения ICollection / one-to-many, оно будет загружаться с отложенной загрузкой по умолчанию, тогда как если вы пропустите виртуальное ключевое слово, оно будет быть загруженным.
Какие еще эффекты могут virtual
иметь ключевое слово в EF с сущностями POCO ?. Должен ли я сделать его по умолчанию для использования virtual
во всех моих свойствах, или по умолчанию не использовать его?
источник
public virtual byte[] bigData { get; set; }
" Ленивая загрузка?.Select(a=>new { fields you want })
.Это виртуальное ключевое слово связано с темой загрузки данных из структуры сущностей (отложенная загрузка, полная загрузка и явная загрузка).
Вы должны использовать виртуальное ключевое слово, когда вы хотите загрузить данные с отложенной загрузкой.
отложенная загрузка - это процесс, при котором сущность или коллекция сущностей автоматически загружаются из базы данных при первом обращении к ней.
Например, при использовании класса сущности Блог, определенного ниже, связанные сообщения будут загружаться при первом обращении к свойству навигации по сообщениям:
Ленивую загрузку коллекции Posts можно отключить, сделав свойство Posts не виртуальным.
если отложенная загрузка отключена, загрузка коллекции Posts все еще может быть достигнута с помощью активной загрузки (с помощью метода Include) или явной загрузки связанных объектов (с помощью метода Load).
Жадно загружается:
Явно загрузка:
источник
Include()
.