エンティティをすぐに操作せずに、データベースからコンテキストにエンティティを読み込む複数のシナリオがあります。 その良い例として、「 ローカル データ」の説明に従って、データ バインディングのエンティティを読み込んでいます。 これを行う一般的な方法の 1 つは、LINQ クエリを記述し、それに対して ToList を呼び出して、作成されたリストをすぐに破棄することです。 Load 拡張メソッドは ToList と同じように機能しますが、リストの作成が完全に回避される点が異なります。
このトピックで示す手法は、Code First と EF Designer で作成されたモデルにも同様に適用されます。
Load を使用する 2 つの例を次に示します。 1 つ目は、ローカル データの説明に従って、ローカル コレクションにバインドする前にエンティティのクエリを実行するために Load が使用される Windows フォーム データ バインディング アプリケーションから取得 されます。
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
_context = new ProductContext();
_context.Categories.Load();
categoryBindingSource.DataSource = _context.Categories.Local.ToBindingList();
}
2 番目の例は、「関連エンティティの読み込み」の説明に従って、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();
}
GitHub で Microsoft と共同作業する
このコンテンツのソースは GitHub にあります。そこで、issue や pull request を作成および確認することもできます。 詳細については、共同作成者ガイドを参照してください。
.NET