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


Table<TEntity>.DeleteOnSubmit(TEntity) Метод

Определение

Помещает сущность из таблицы в состояние pending delete.

public:
 void DeleteOnSubmit(TEntity entity);
public:
 virtual void DeleteOnSubmit(TEntity entity);
public void DeleteOnSubmit (TEntity entity);
member this.DeleteOnSubmit : 'Entity -> unit
abstract member DeleteOnSubmit : 'Entity -> unit
override this.DeleteOnSubmit : 'Entity -> unit
Public Sub DeleteOnSubmit (entity As TEntity)

Параметры

entity
TEntity

Сущность, которая будет удалена.

Реализации

Примеры

// Query the database for the rows to be deleted.
var deleteOrderDetails =
    from details in db.OrderDetails
    where details.OrderID == 11000
    select details;

foreach (var detail in deleteOrderDetails)
{
    db.OrderDetails.DeleteOnSubmit(detail);
}

try
{
    db.SubmitChanges();
}
catch (Exception e)
{
    Console.WriteLine(e);
    // Provide for exceptions.
}
' Query the database for the rows to be deleted.
Dim deleteOrderDetails = _
    From details In db.OrderDetails() _
    Where details.OrderID = 11000 _
    Select details

For Each detail As OrderDetail In deleteOrderDetails
    db.OrderDetails.DeleteOnSubmit(detail)
Next

Try
    db.SubmitChanges()
Catch ex As Exception
    Console.WriteLine(ex)
    ' Provide for exceptions
End Try

Комментарии

Удаленная сущность не исчезает из результатов запроса до тех пор, пока не SubmitChanges будет вызвана функция . Прежде чем удалять отключенные сущности, их необходимо сначала подключить. Дополнительные сведения см. в разделе Извлечение данных и операции CUD в N-уровневых приложениях (LINQ to SQL).

Примечание

LINQ to SQL не поддерживает и не распознает операции каскадного удаления. Если вы хотите удалить строку в таблице с ограничениями, необходимо либо задать ON DELETE CASCADE правило в ограничении внешнего ключа в базе данных, либо использовать собственный код, чтобы сначала удалить дочерние объекты, препятствующие удалению родительского объекта. В противном случае создается исключение.

Применяется к