Compartilhar via


SPFieldLookup.RelationshipDeleteBehavior property

Obtém ou define o comportamento de exclusão do campo de pesquisa.

Namespace:  Microsoft.SharePoint
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
Public Property RelationshipDeleteBehavior As SPRelationshipDeleteBehavior
    Get
    Set
'Uso
Dim instance As SPFieldLookup
Dim value As SPRelationshipDeleteBehavior

value = instance.RelationshipDeleteBehavior

instance.RelationshipDeleteBehavior = value
public SPRelationshipDeleteBehavior RelationshipDeleteBehavior { get; set; }

Property value

Type: Microsoft.SharePoint.SPRelationshipDeleteBehavior
O comportamento de exclusão. Os valores possíveis incluem Cascade, Restrict e None.

Exceptions

Exception Condition
SPException

Você não pode definir um valor diferente de None , se o campo de pesquisa representa uma coluna de site.

Comentários

A propriedade de RelationshipDeleteBehavior permite que você impor integridade referencial da relação entre duas listas de uma lista depende de outra lista. Se um campo de pesquisa na lista dependente tem a propriedade de RelationshipDeleteBehavior definida como Cascade, em seguida, excluir um item da lista de origem faz com que todos os itens da lista de dependentes relacionados a ser excluída também. Por exemplo, suponha que você tenha uma lista de clientes está relacionada a uma lista de endereços por um campo de pesquisa na lista de endereços. Talvez você queira excluir um item de clientes para fazer com que todos os itens relacionados de endereços a serem excluídos também. Você poderia ser feito definindo a propriedade RelationshipDeleteBehavior do campo de pesquisa na lista de endereços para Cascade.

Definindo a propriedade RelationshipDeleteBehavior como Restrict impede que um item da lista de origem sejam excluídos se pesquisar todos os itens na lista de dependentes para ele. Por exemplo, suponha que sua lista de clientes é a fonte de um campo de pesquisa na lista de pedidos pendentes. Talvez você não queira um item da lista de clientes para ser excluído se o cliente tiver pedidos pendentes. Nesse caso, você poderia definir a propriedade de RelationshipDeleteBehavior para o campo de pesquisa em pedidos pendentes para Restrict.

Um campo de pesquisa que impõe uma restrição de exclusão deve ser indexado. Antes de definir a propriedade RelationshipDeleteBehavior para Cascade ou Restrict, defina a propriedade Indexed para true.

Importante

O usuário deve ter permissão de ManageLists na lista de fonte para especificar o Cascade ou Restrict. Para obter mais informações, consulte a enumeração SPBasePermissions .

Além disso, você não pode especificar uma restrição de exclusão se:

  • O campo de pesquisa permite que vários valores.

    Antes de definir a propriedade RelationshipDeleteBehavior , certifique-se de que a propriedade AllowMultipleValues retorna false.

  • O campo de pesquisa aponta para uma lista no outro site.

    Verifique o valor da propriedade de LookupWebId do campo de pesquisa.

  • O número de itens na lista excede o máximo definido para listas grandes.

    Compare o valor retornado pela propriedade de ItemCount da lista com o valor retornado pela propriedade de MaxItemsPerThrottledOperation do aplicativo da Web.

O usuário atual deve ter SPBasePermissions.permissão de ManageLists da lista de destino quando essa propriedade é definida como Restrict.

Examples

O exemplo a seguir é um aplicativo de console que cria um vínculo entre duas listas, os clientes e pedidos pendentes. As listas são vinculadas usando o campo ID da lista de clientes como a origem para um novo campo de ID de cliente na lista de pedidos pendentes. Para impedir que um item de lista de clientes seja excluído se ele tiver quaisquer itens de lista de pedidos pendentes procurando até, a propriedade RelationshipDeleteBehavior do novo campo Identificação do cliente é definida como Restrict.

using System;
using Microsoft.SharePoint;

namespace RelatedLists
{
    class Program
    {
        static void Main(string[] args)
        {
            using (SPSite siteCollection = new SPSite("https://localhost"))
            {
                using (SPWeb site = siteCollection.OpenWeb())
                {
                    SPList lookupList = site.Lists.TryGetList("Customers");
                    SPList relatedList = site.Lists.TryGetList("Pending Orders");

                    if (lookupList != null && relatedList != null)
                    {
                        string strPrimaryCol = relatedList.Fields.AddLookup("Customer ID", lookupList.ID, true);
                        SPFieldLookup primaryCol = (SPFieldLookup)relatedList.Fields.GetFieldByInternalName(strPrimaryCol);

                        primaryCol.LookupField = lookupList.Fields["ID"].InternalName;
                        primaryCol.Indexed = true;
                        primaryCol.RelationshipDeleteBehavior = SPRelationshipDeleteBehavior.Restrict;
                        primaryCol.Update();
                    }
                }
            }
            Console.Write("\nPress ENTER to continue...");
            Console.ReadLine();
        }
    }
}
Imports System
Imports Microsoft.SharePoint

Module ConsoleApp

    Sub Main()
        Using siteCollection As New SPSite("https://localhost")
            Using site As SPWeb = siteCollection.OpenWeb()
                Dim lookupList As SPList = site.Lists.TryGetList("Customers")
                Dim relatedList As SPList = site.Lists.TryGetList("Pending Orders")

                If lookupList IsNot Nothing AndAlso relatedList IsNot Nothing Then
                    Dim strPrimaryCol As String = relatedList.Fields.AddLookup("Customer ID", lookupList.ID, True)
                    Dim primaryCol As SPFieldLookup = _
                        DirectCast(relatedList.Fields.GetFieldByInternalName(strPrimaryCol), SPFieldLookup)

                    primaryCol.LookupField = lookupList.Fields("ID").InternalName
                    primaryCol.Indexed = True
                    primaryCol.RelationshipDeleteBehavior = SPRelationshipDeleteBehavior.Restrict
                    primaryCol.Update()
                End If
            End Using
        End Using
        Console.Write(vbLf & "Press ENTER to continue...")
        Console.ReadLine()
    End Sub
End Module

Ver também

Referência

SPFieldLookup class

SPFieldLookup members

Microsoft.SharePoint namespace

Indexed

AllowMultipleValues