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