ObjectContext.Connection Property
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 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.
Not a helpful example
It's a very long code example but it doesn't even use the ObjectContext.Connection property! Duh!!!!!!!!!!!!
- 12/6/2011
- Adam R Moss