Entity Frameworkは、DbContext
の新しいインスタンスを作成すると、データベースへの新しい接続を作成しますか?Entity Framework 5 DbContextと接続
1
A
答えて
1
DavidGと同意すると、いいえその時点で接続は作成されません。
接続のみ、のSaveChanges()はそれupdates, inserts or deletes
ことが、あなたのentities
に行わ
変更を呼ばれたときに永続化されDbContext.SaveChanges()
メソッドが呼び出されたときにのみデータベースに永続化されています。 DbContext
インスタンスが、SaveChanges()
メソッドが呼び出される前に破棄された場合、このDbContext
で実行されたinserts, updates or deletes
は、データストアに永続化されません。
1
だから、例として、このコードを取る:
接続が開始されvar context = new MyContext();
var cars = context.Cars.Where(c => c.TopSpeed > 100);
var carList = cars.ToList(); //Connection will probably happen here
?実際には2つの可能性があります。通常、最後の行には接続が作成されます。コンテキストのインスタンス化には副作用がなく、中間の行は遅延実行を使用しているため、まだ接続は必要ありません。
しかし、2行目で接続が作成されることがあります。これは、アプリが初めてスピンアップしてEntity Frameworkを起動し、データベースが必要と考えるものと一致する必要がある場合に発生しますさあ。これを無効にするには、次のようにイニシャライザを無効にします。
Database.SetInitializer<MyContext>(null);
データベースへの書き込みはどうですか?さて、あなたは起こって似た何かを持っていますが、SaveChanges
を呼び出すときに、この時間は、接続が必要とされている唯一の時間は次のとおりです。
var context = new MyContext();
var ferarri = new Car { Name = "Ferarri", TopSpeed = 170 };
context.Cars.Add(ferarri);
context.SaveChanges(); //Connection will probably happen here
は、すべてのことですか?あなたが取引を開始する際によくありません、あなたはまた、新しい接続を取得します:
//Database connection will be opened here
using (var transaction = context.Database.BeginTransaction())
{
var cars = context.Cars.Where(c => c.TopSpeed > 100);
var carList = cars.ToList();
}
関連する問題
- 1. Entity Frameworkストアドプロシージャーとリモート接続
- 2. C#Entity Framework 4.3 DbContext
- 3. Entity Framework 4.3.1 DBContext Connection
- 4. Azure WebロールのEntity Framework DbContext
- 5. Entity Framework 5のLoadProperty
- 6. Entity Frameworkの更新DbContext
- 7. ユニット、Entity FrameworkのDBContextスコープ
- 8. Entity FrameworkのMySQLのDbContextは
- 9. Entity Frameworkコア接続管理
- 10. Entity Frameworkデータベース接続のテスト
- 11. Entity FrameworkのOracleデータベース接続
- 12. Entity Frameworkの5
- 13. Entity Frameworkを使用したSql Azureへの接続「コードファースト」ctp 5
- 14. Entity Frameworkのコードファーストと接続文字列
- 15. Entity Framework 4.1、DBContext、接続間でトランザクションを再利用する方法
- 16. をEntity Frameworkの5
- 17. Entity Framework 4.1 DbContext部分クラスの拡張
- 18. Entity FrameworkカスタムのASP .NETコアIDカスタムDbContext
- 19. Entity Framework 6.1でDbContextをモックする
- 20. Entity FrameworkのDBContext、DBSet <>の参照
- 21. Entity Frameworkを使用したDBContextのジェネリック
- 22. Entity FrameworkのコードファーストDBContext ObjectStateManagerはエラー
- 23. Entity Framework 4 + DBContext T4 +抽象基底クラス
- 24. Entity FrameworkのDBContextデータバインディングの問題
- 25. Entity Frameworkを使用したクラスライブラリDbContext
- 26. 接続は、Entity Frameworkの1に
- 27. ASP.NET WebAPI 2 + Entity Framework接続キャッシュのベストプラクティス
- 28. コードFirst Entity Framework接続文字列、データソースキーワードエラー
- 29. Entity Frameworkコード最初のAzure接続
- 30. Entity Frameworkデータベース接続のないASP.NET MVC
をこの5月に役立ちます.. [DbContext](http://mehdi.me/ambient-dbcontext-in-ef6/) –