Entity Framework 4 выборочно ленивые свойства загрузки

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

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

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

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

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

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

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

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

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

Вы также можете использовать Eager Loading с помощью метода Include. Пример здесь: http://wildermuth.com/2008/12/28/Caution_when_Eager_Loading_in_the_Entity_Framework

Учитывая запрос по EntityFramework DbSet, где целевой объект содержит BigProperty и SmallProperty, когда вы пытаетесь получить доступ к SmallProperty без загрузки BigProperty в память:

 //this query loads the entire entity returned by FirstOrDefault() in memory //the execution is deferred during Where; the execution happens at FirstOrDefault db.BigEntities.Where(filter).FirstOrDefault()?.SmallProperty; //this query only loads the SmallProperty in memory //the execution is still deferred during Select; the execution happens at FirstOrDefault //a subset of properties can be selected from the entity, and only those will be loaded in memory db.BigEntities.Where(filter).Select(e=>e.SmallProperty).FirstOrDefault(); 

Поэтому вы можете использовать это поведение только для запроса BigProperty, где он вам действительно нужен, и использовать команды select, чтобы явно фильтровать его везде.

Я тестировал это с помощью функции использования памяти из инструментов диагностики отладки Visual Studio.

  • Организационно, где я должен ставить общие запросы при первом использовании кода Entity Framework?
  • Учебники ADO.NET Entity Framework
  • Передайте строку соединения кодовому первому DbContext
  • Уникальные ограничения ключа для нескольких столбцов в Entity Framework
  • Entity Framework слишком медленная. Какие у меня варианты?
  • Как включить дочерний объект дочернего объекта в Entity Framework 5
  • EF 4.1 загрузка фильтрованных дочерних коллекций, не работающих для многих-ко-многим
  • Ключевое слово не поддерживается: 'server'
  • Entity framework 4.3 запускает миграцию при запуске приложения
  • Как разогревать приложение ASP.NET MVC на IIS 7.5?
  • Может ли кто-нибудь понять, почему я продолжаю получать эту ошибку, проверяя бета-версию EF 5
  • Interesting Posts

    Выполнение запроса HTTPS с использованием Android Volley

    Как форматировать число в Java?

    Сценарий или пусковая установка для настройки нескольких вкладок терминала в разных местах

    WPF: Как я прокручиваю все элементы управления в окне?

    Как написать правильный нуль-безопасный коалесцирующий оператор в scala?

    Структура данных для загруженных кубиков?

    Атрибут MaxLength не генерирует атрибуты проверки на стороне клиента

    Чтение больших данных с фиксированной шириной

    Какова наилучшая схема базы данных для поддержки значений, которые подходят только для определенных строк?

    При использовании SASS, как я могу импортировать файл из другого каталога?

    Как жесткий диск сравнивается с флэш-памятью, работающей как жесткий диск с точки зрения скорости?

    Что означает этот синтаксис cant ^, с полосой с обеих сторон?

    Настройки «Доверенные сайты» в Google Chrome

    Безопасно ли хранить пароли в качестве переменных среды (а не как обычный текст) в файлах конфигурации?

    Как заставить Windows 7 переключаться между программами быстрее через какое-то время?

    Давайте будем гением компьютера.