ObjectContext.Connection Property
.NET Framework 4.5
Gets the connection used by the object context.
Assembly: System.Data.Entity (in System.Data.Entity.dll)
| Exception | Condition |
|---|---|
| ObjectDisposedException | When the ObjectContext instance has been disposed. |
This example creates an EntityConnection object that is passed into the constructor of a long-running ObjectContext. The connection is opened manually. Both the EntityConnection object and the ObjectContext object are disposed of manually.
// Define the order ID for the order we want. int orderId = 43680; // Create an EntityConnection. EntityConnection conn = new EntityConnection("name=AdventureWorksEntities"); // Create a long-running context with the connection. AdventureWorksEntities context = new AdventureWorksEntities(conn); try { // Explicitly open the connection. if (conn.State != ConnectionState.Open) { conn.Open(); } // Execute a query to return an order. SalesOrderHeader order = context.SalesOrderHeaders.Where( "it.SalesOrderID = @orderId", new ObjectParameter("orderId", orderId)) .Execute(MergeOption.AppendOnly).First(); // Change the status of the order. order.Status = 1; // You do not have to call the Load method to load the details for the order, // because lazy loading is set to true // by the constructor of the AdventureWorksEntities object. // With lazy loading set to true the related objects are loaded when // you access the navigation property. In this case SalesOrderDetails. // Delete the first item in the order. context.DeleteObject(order.SalesOrderDetails.First()); // Save changes. if (0 < context.SaveChanges()) { Console.WriteLine("Changes saved."); } // Create a new SalesOrderDetail object. // You can use the static CreateObjectName method (the Entity Framework // adds this method to the generated entity types) instead of the new operator: // SalesOrderDetail.CreateSalesOrderDetail(1, 0, 2, 750, 1, (decimal)2171.2942, 0, 0, // Guid.NewGuid(), DateTime.Today)); SalesOrderDetail detail = new SalesOrderDetail { SalesOrderID = 1, SalesOrderDetailID = 0, OrderQty = 2, ProductID = 750, SpecialOfferID = 1, UnitPrice = (decimal)2171.2942, UnitPriceDiscount = 0, LineTotal = 0, rowguid = Guid.NewGuid(), ModifiedDate = DateTime.Now }; order.SalesOrderDetails.Add(detail); // Save changes again. if (0 < context.SaveChanges()) { Console.WriteLine("Changes saved."); } } catch (InvalidOperationException ex) { Console.WriteLine(ex.ToString()); } finally { // Explicitly dispose of the context and the connection. context.Dispose(); conn.Dispose(); }
Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.