Поделиться через


Как открыть соединения вручную из контекста объекта (платформа Entity Framework)

В данном разделе показано на примере, как вручную открыть соединение из контекста объекта.

Пример в этом разделе основан на модели Модель AdventureWorks Sales. Чтобы запустить код из данного примера, нужно сначала добавить к проекту модель AdventureWorks Sales и настроить его для использования платформы Entity Framework. Для этого выполните процедуру из раздела Как использовать мастер моделей EDM (платформа Entity Framework).

Пример

В данном примере проводится открытие соединения вручную, затем выполнение запроса и сохранение изменений. Соединение закрывается после выхода контекста из области действия и его удаления.

' Define the order ID for the order we want. 
Dim orderId As Integer = 43680

Using context As New AdventureWorksEntities()
    ' Explicitly open the connection. 
    context.Connection.Open()

    ' Execute a query to return an order. 
    Dim order As SalesOrderHeader = context.SalesOrderHeaders.Where("it.SalesOrderID = @orderId", _
                                        New ObjectParameter("orderId", orderId)).Execute(MergeOption.AppendOnly).First()


    ' Change the status of the order. 
    order.Status = 1

    ' Save changes. 
    If 0 < context.SaveChanges() Then
        Console.WriteLine("Changes saved.")
    End If
    ' The connection is closed when the object context 
    ' is disposed because it is no longer in scope. 
End Using
// Define the order ID for the order we want.
int orderId = 43680;

using (AdventureWorksEntities context =
    new AdventureWorksEntities())
{
    // Explicitly open the connection.    
    context.Connection.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;

    // Save changes.
    if (0 < context.SaveChanges())
    {
        Console.WriteLine("Changes saved.");
    }
    // The connection is closed when the object context
    // is disposed because it is no longer in scope.
}

См. также

Задачи

Как управлять соединением в длительно существующем контексте объекта (платформа Entity Framework)
Как использовать класс EntityConnection с контекстом объекта (платформа Entity Framework)