Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Существует несколько сценариев, в которых может потребоваться загрузить сущности из базы данных в контекст без немедленного выполнения каких-либо действий с этими сущностями. Хорошим примером этого является загрузка сущностей для привязки данных, как описано в разделе "Локальные данные". Одним из распространенных способов этого является запись запроса LINQ и вызов ToList только для немедленного удаления созданного списка. Метод расширения Load работает так же, как ToList, за исключением того, что он полностью избегает создания списка.
Методы, показанные в этом разделе, применяются одинаково к моделям, созданным с помощью code First и ef Designer.
Ниже приведены два примера использования Load. Первый берется из приложения привязки данных Windows Forms, где Load используется для запроса сущностей перед привязкой к локальной коллекции, как описано в разделе "Локальные данные".
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
_context = new ProductContext();
_context.Categories.Load();
categoryBindingSource.DataSource = _context.Categories.Local.ToBindingList();
}
Во втором примере показано использование Load для загрузки отфильтрованной коллекции связанных сущностей, как описано в разделе "Загрузка связанных сущностей".
using (var context = new BloggingContext())
{
var blog = context.Blogs.Find(1);
// Load the posts with the 'entity-framework' tag related to a given blog
context.Entry(blog)
.Collection(b => b.Posts)
.Query()
.Where(p => p.Tags.Contains("entity-framework"))
.Load();
}