LINQ to SQL: Как EntitySet лениво загружает объекты? - PullRequest
1 голос
/ 02 сентября 2010

Я пытался реализовать пользовательский ORM для нашего проекта и мне интересно узнать, как LINQ to SQL или Entity Framework лениво загружают объекты.

Я прочитал о EntitySet и понял, что у него есть метод Load().Кто-нибудь знает, как именно работает Load?Я предполагаю, что он должен иметь ссылку на DataContext (или ObjectContext в EF), чтобы загрузить запрошенный объект (ы).

Ответы [ 3 ]

0 голосов
/ 02 сентября 2010

Вот статья , посвященная типам выполнения запросов в LINQ to SQL.
Что касается Entity Framework, вот аналогичная статья .

0 голосов
/ 03 сентября 2010

Спасибо.Но я только что понял, что прокси используется с объектами POCO, и если вы используете код, сгенерированный дизайнером, прокси не генерируется.В этом случае я заметил личное (или, возможно, внутреннее) поле, указывающее на ObjectContext.Таким образом, сущность может обращаться к ObjectContext для запроса дополнительных данных, если это необходимо.

0 голосов
/ 02 сентября 2010

Точно.Ленивая загрузка работает, только если сущность все еще привязана к контексту.Обычно он реализуется как прокси на вершине некоторой коллекции или объекта, поэтому при первом обращении к прокси он загружает объект или коллекцию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...