Различие между Публик Виртуаль и List <>

Привет люди нравились бы мне мочь понимать, который является различием между объявлением связи моделей (entity framework) посредством public List<Modelo> Modelos { get; set; } и public Virtual Modelo Modelos { get; set; }. С уже спасибо.

0
задан 11.10.2016, 20:53
3 ответа

Помни, что, определив что-то поскольку как виртуальное, ты оставляешь возможность sobreescribir функциональность виртуальные

(Он снабжает ссылками C#)

, эта способность - та, кто использует entity framework, чтобы действовать посредника, быть делать инъекцию Вашему осуществлению, таким образом, смоги добавлять способность lazy load в связях. А ты определяешь поскольку как виртуальное свойство EF он не сможет выступать посредником, с чем proxy lazy не делают инъекцию в организацию.

Определять List<> или организация зависит от навигации, которую ты хочешь получить, ясно, что в существо список будет связью один во многие. Проанализируй пример

Конфигурировал Оне-то-Мани Релатионсип

краев, как определяются оба свойства, чтобы иметь полную навигацию, но у обоих должны быть virtual

1
ответ дан 24.11.2019, 13:08

Различие между использованием или нет виртуально состоит в том, что, когда ты это определяешь, Энтити Фрамеворк может загружать организации, связанные с lazy loading

0
ответ дан 24.11.2019, 13:08

Что-то, что ты должен быть осторожен с ними виртуально, состоит в том, что они опасные для результата, так как тебя загружают связанные данные ВСЕГДА. По моему мнению лучшее состоит в том, чтобы не объявлять виртуальное свойство, если ты думаешь, что в этой он будет загружен большим объемом данных.

Например, он как будто ты делаешь GET () класса СТРАНА "китаянка", чтобы СТРАНА приносит просто описание и класс, считает связанным свойство IENUMERABLE<PERSONAS> , если он будет с виртуальным, он принесет тебе все данные ЛЮДЕЙ. Он заканчивает тем, что строит select страны делая join с таблицей люди, которые у него есть миллионы реестров

0
ответ дан 24.11.2019, 13:08
  • 1
    это не является верным, если ты определяешь виртуально свойство с entity framework, не загружает ее всегда, так как ты даешь возможность lazy, похвалите, кроме того, что, определив query linq, ты используешь Include (). – Leandro Tuttini 13.10.2016, 11:43
  • 2
    Это думал я до тех пор, пока я это не увидел с моими собственными глазами – J4ime 13.10.2016, 12:38

Теги

Похожие вопросы