Partager via


Classe RoundtripOriginalAttribute

Lorsqu'il est appliqué à un membre, cet attribut indique que la valeur d'origine du membre doit être renvoyée au serveur lorsque l'objet est mis à jour. Lorsqu'il est appliqué à une classe, cet attribut est appliqué à chaque membre de la classe en question.

Espace de noms: System.ComponentModel.DataAnnotations
Assembly : System.ServiceModel.DomainServices.Client (dans system.servicemodel.domainservices.client.dll)

Utilisation

'Utilisation
Dim instance As RoundtripOriginalAttribute

Syntaxe

'Déclaration
<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

Exemple

L'exemple suivant montre une classe de métadonnées avec RoundtripOriginalAttribute, RequiredAttribute, StringLengthAttribute et ExcludeAttribute diversement appliqués à ses propriétés.

<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; }
    }
}

Notes

Vous appliquez l'attribut RoundtripOriginalAttribute à une propriété dans une entité lorsque vous souhaitez envoyer la valeur de cette propriété au serveur pour garantir l'accès concurrentiel de données. Si cet attribut n'est pas présent, la valeur de ce membre sera Null dans l'objet d'origine renvoyé au serveur.

Si vous permettez aux utilisateurs de mettre à jour ou de supprimer des données, assurez-vous que les données dans la source de données n'ont pas été modifiées par un autre processus avant de continuer la mise à jour ou la suppression. Si vous ne vérifiez pas si les valeurs ont changé, vous pouvez remplacer involontairement des valeurs définies par un autre processus.

Par défaut, les Services RIA ne passent pas l'intégralité de l'entité d'origine avec les valeurs modifiées à la couche d'accès aux données pour rechercher l'accès concurrentiel de données. Les Services RIA stockent et repassent uniquement les membres marqués avec l'attribut RoundtripOriginalAttribute, l'attribut ConcurrencyCheckAttribute ou l'attribut TimestampAttribute. Ces attributs d'accès concurrentiel peuvent être appliqués aux classes de métadonnées lors de l'utilisation d'Entity Framework ou directement aux objets CLR lors de l'utilisation de modèles de données définies POCO. Cette implémentation permet d'optimiser les performances de votre application en spécifiant uniquement les membres qui doivent participer au contrôle d'accès concurrentiel.

Hiérarchie d'héritage

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

Sécurité des threads

Tous les membres publics statiques (Partagés dans Visual Basic) de ce type sont thread-safe. Il n'est pas garanti que les membres d'instance soient thread-safe.

Plateformes

Plateformes de développement

Windows XP Édition familiale, Windows XP Professionnel, Windows Server 2003 , Windows Server 2008 et Windows 2000

Plateformes cibles

Change History

Voir aussi

Référence

Membres RoundtripOriginalAttribute
Espace de noms System.ComponentModel.DataAnnotations