Платформа объекта 4 выборочных ленивых свойства загрузки

Действительно ли возможно загрузить объект, исключая некоторые свойства? Одно из свойств этого объекта является дорогим для выбора. Я хотел бы к ленивой загрузке это свойство. Это возможно?

26
задан p.campbell 18 July 2010 в 04:01
поделиться

3 ответа

Теперь, когда вы прочитали ответы всех, я дам вам правильный ответ. EF не поддерживает ленивую загрузку свойств. Однако он поддерживает гораздо более мощную концепцию, чем эта. Это называется разделение таблиц, когда вы можете сопоставить таблицу с двумя сущностями. Скажем, таблица продуктов в базе данных может быть сопоставлена с сущностью Product и сущностью ProductDetail. Затем вы можете переместить дорогие поля в сущность ProductDetail, а затем создать ассоциацию 1...1 между сущностями product и productdetail. Затем вы можете лениво загружать ассоциацию productdetail только тогда, когда она вам нужна. В главе моей книги, посвященной производительности, есть рецепт под названием. 13-9. Перемещение дорогостоящего свойства в другую сущность

Надеюсь, это поможет!

У Джули Лерман есть статья о том, как разделить таблицу

36
ответ дан 28 November 2019 в 07:16
поделиться

Со скаляром свойство, единственный способ избирательно не загружать определенное свойство - это проецировать на ESQL или L2E:

var q = from p in Context.People
        select new
        {
            Id = p.Id,
            Name = p.Name // note no Biography
        };

+1 к Дэну; делать это лениво хуже, чем загружать их заранее. Если вы хотите контролировать загрузку, будьте откровенны.

7
ответ дан 28 November 2019 в 07:16
поделиться

стимм - это правильно, но будьте осторожны при использовании отложенной загрузки. У вас могут быть проблемы с производительностью, и вы не понимаете, что свойство загружается в определенном месте вашего кода. Это потому, что он загружает данные, когда вы используете свойство

. Я предпочитаю использовать явную загрузку. Таким образом вы узнаете, когда они загружаются и где. Вот ссылка, которая дает пример LoadProperty http://sankarsan.wordpress.com/2010/05/09/ado-net-entity-framework-data-loading-part-2/

Вы можете Вы также можете использовать метод «Активная загрузка» с помощью метода Include. Пример здесь: http://wildermuth.com/2008/12/28/Caution_when_Eager_Loading_in_the_Entity_Framework

1
ответ дан 28 November 2019 в 07:16
поделиться
Другие вопросы по тегам:

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