Freigeben über


RoundtripOriginalAttribute-Klasse

Bei Anwendung auf einen Member gibt dieses Attribut an, dass der ursprüngliche Wert des Members beim Aktualisieren des Objekts an den Server zurückgesendet werden soll. Bei Anwendung auf eine Klasse wird dieses Attribut auf jeden Member der betreffenden Klasse angewendet.

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

Verwendung

'Usage
Dim instance As RoundtripOriginalAttribute

Syntax

'Declaration
<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

Beispiel

Das folgende Beispiel zeigt eine Adressmetadatenklasse, bei der die Attribute RoundtripOriginalAttribute, RequiredAttribute, StringLengthAttribute und ExcludeAttribute auf einige der Eigenschaften angewendet wurden.

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

Hinweise

Wenden Sie das RoundtripOriginalAttribute-Attribut auf eine Eigenschaft in einer Entität an, wenn Sie den Wert dieser Eigenschaft an den Server senden möchten, um die Datenparallelität sicherzustellen. Wenn dieses Attribut nicht vorhanden ist, ist der Wert dieses Members im ursprünglichen, an den Server zurückgesendeten Objekt NULL.

Wenn Sie Benutzern das Aktualisieren oder Löschen von Daten ermöglichen, stellen Sie sicher, dass die Daten in der Datenquelle nicht von einem anderen Prozess geändert wurden, bevor Sie den Aktualisierungs- oder Löschvorgang fortsetzen. Wenn Sie nicht überprüfen, ob sich die Werte geändert haben, können von einem anderen Prozess festgelegte Werte unabsichtlich überschrieben werden.

Standardmäßig wird RIA Services nicht von der ganzen ursprünglichen Entität zusammen mit den geänderten Werten zur Datenzugriffsebene verabschiedet, um die Datenparallelität zu überprüfen. Stattdessen speichert und übergibt RIA Services nur diejenigen Member, die mit dem RoundtripOriginalAttribute-Attribut, dem ConcurrencyCheckAttribute-Attribut oder dem TimestampAttribute-Attribut markiert sind. Diese Parallelitätsattribute können beim Arbeiten mit dem Entity Framework auf die Metadatenklassen oder beim Arbeiten mit von POCO definierten Datenmodellen direkt auf die CLR-Objekte angewendet werden. Diese Implementierung ermöglicht es Ihnen, die Leistung der Anwendung zu optimieren, indem Sie nur die Member angeben, die Teil der Parallelitätsüberprüfung sein sollen.

Vererbungshierarchie

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

Threadsicherheit

Alle öffentlichen statischen (Shared in Visual Basic) Member dieses Typs sind threadsicher. Bei Instanzmembern ist die Threadsicherheit nicht sichergestellt.

Plattformen

Entwicklungsplattformen

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

Zielplattformen

Change History

Siehe auch

Verweis

RoundtripOriginalAttribute-Member
System.ComponentModel.DataAnnotations-Namespace