Condividi tramite


Classe RoundtripOriginalAttribute

Se applicato a un membro, questo attributo indica che il valore originale del membro deve essere reinviato al server quando si aggiorna l'oggetto. Se applicato a una classe, l'attributo viene applicato a ogni membro di tale classe.

Spazio dei nomi: System.ComponentModel.DataAnnotations
Assembly: System.ServiceModel.DomainServices.Client (in system.servicemodel.domainservices.client.dll)

Utilizzo

'Utilizzo
Dim instance As RoundtripOriginalAttribute

Sintassi

'Dichiarazione
<AttributeUsageAttribute(AttributeTargets.Class Or AttributeTargets.Property Or AttributeTargets.Field, AllowMultiple:=False)> _
Public NotInheritable Class RoundtripOriginalAttribute
    Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=false)] 
public sealed class RoundtripOriginalAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Class|AttributeTargets::Property|AttributeTargets::Field, AllowMultiple=false)] 
public ref class RoundtripOriginalAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=false) */ 
public final class RoundtripOriginalAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Class|AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=false) 
public final class RoundtripOriginalAttribute extends Attribute

Esempio

Nell'esempio seguente viene illustrata una classe di metadati dell'indirizzo con RoundtripOriginalAttribute, RequiredAttribute, StringLengthAttribute e ExcludeAttribute applicati ad alcune proprietà.

<MetadataTypeAttribute(GetType(Address.AddressMetadata))>  _
Partial Public Class Address
    
    Friend NotInheritable Class AddressMetadata
        
        'Metadata classes are not meant to be instantiated.
        Private Sub New()
            MyBase.New
        End Sub
        
        Public AddressID As Integer

        <Required()> _
        <StringLength(60)> _
        <RoundtripOriginal()> _
        Public AddressLine1 As String

        <RoundtripOriginal()> _
        Public AddressLine2 As String

        <Required()> _
        <StringLength(30)> _
        <RoundtripOriginal()> _
        Public City As String

        <RoundtripOriginal()> _
        Public CountryRegion As String
        
        Public CustomerAddresses As EntityCollection(Of CustomerAddress)

        <RoundtripOriginal()> _
        Public ModifiedDate As DateTime

        <Required()> _
        <RoundtripOriginal()> _
        Public PostalCode As String

        <Exclude()> _
        Public rowguid As Guid

        <RoundtripOriginal()> _
        Public StateProvince As String
    End Class
End Class
[MetadataTypeAttribute(typeof(Address.AddressMetadata))]
public partial class Address
{

    internal sealed class AddressMetadata
    {
        // Metadata classes are not meant to be instantiated.
        private AddressMetadata()
        {
        }

        public int AddressID { get; set; }

        [Required]
        [StringLength(60)]
        [RoundtripOriginal]
        public string AddressLine1 { get; set; }

        [RoundtripOriginal]
        public string AddressLine2 { get; set; }

        [Required]
        [StringLength(30)]
        [RoundtripOriginal]
        public string City { get; set; }

        [RoundtripOriginal]
        public string CountryRegion { get; set; }

        public EntityCollection<CustomerAddress> CustomerAddresses { get; set; }

        [RoundtripOriginal]
        public DateTime ModifiedDate { get; set; }

        [Required]
        [RoundtripOriginal]
        public string PostalCode { get; set; }

        [Exclude]
        public Guid rowguid { get; set; }

        [RoundtripOriginal]
        public string StateProvince { get; set; }
    }
}

Osservazioni

L'attributo RoundtripOriginalAttribute viene applicato a una proprietà in un'entità quando si desidera inviare il valore di tale proprietà al server per assicurare la concorrenza dei dati. Se l'attributo non è presente, il valore di tale membro sarà null nell'oggetto originale reinviato al server.

Quando si consente agli utenti di aggiornare o eliminare dati, verificare che i dati dell'origine dati non siano stati modificati da un altro processo prima di procedere con l'aggiornamento o l'eliminazione. Se non si esegue questa verifica, è possibile che i valori impostati da un altro processo vengano sovrascritti accidentalmente.

Per impostazione predefinita, in RIA Services l'entità originale completa non viene passata con i valori modificati al livello di accesso ai dati per verificare la concorrenza dei dati. Al contrario, in Servizi RIA vengono archiviati e passati nuovamente solo i membri contrassegnati con l'attributo RoundtripOriginalAttribute, ConcurrencyCheckAttribute o TimestampAttribute. Questi attributi di concorrenza possono essere applicati alle classi di metadati se si utilizza Entity Framework o direttamente agli oggetti CLR se si utilizzano i modelli dati definiti da POCO. Questa implementazione consente di ottimizzare le prestazioni dell'applicazione specificando solo i membri che si desidera partecipino alla verifica della concorrenza.

Gerarchia di ereditarietà

System.Object
   System.Attribute
    System.ComponentModel.DataAnnotations.RoundtripOriginalAttribute

Sicurezza dei thread

Tutti i membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.

Piattaforme

Piattaforme di sviluppo

Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 e Windows 2000

Piattaforme di destinazione

Change History

Vedere anche

Riferimento

Membri RoundtripOriginalAttribute
Spazio dei nomi System.ComponentModel.DataAnnotations