다음을 통해 공유


RoundtripOriginalAttribute 클래스

멤버에 적용할 경우 이 특성은 개체를 업데이트할 때 멤버의 원래 값이 다시 서버로 전송되어야 함을 나타냅니다. 클래스에 적용할 경우 이 특성은 해당 클래스의 각 멤버에 적용됩니다.

네임스페이스: System.ComponentModel.DataAnnotations
어셈블리: system.servicemodel.domainservices.client.dll의 System.ServiceModel.DomainServices.Client

사용법

‘사용 방법
Dim instance As RoundtripOriginalAttribute

구문

‘선언
<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

예제

다음 예제에서는 RoundtripOriginalAttribute, RequiredAttribute, StringLengthAttributeExcludeAttribute가 해당 속성에 다양하게 적용된 Address 메타데이터 클래스를 보여 줍니다.

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

설명

데이터 동시성을 위해 속성 값을 서버로 보내려 하는 경우 엔터티의 속성에 RoundtripOriginalAttribute 특성을 적용합니다. 이 특성이 없으면 이 멤버의 값은 서버로 다시 보낸 원본 개체에서 null이 됩니다.

사용자가 데이터를 업데이트하거나 삭제할 수 있도록 하는 경우 업데이트나 삭제를 계속하기 전에 데이터 원본의 데이터가 다른 프로세스에 의해 변경되지 않았는지 확인합니다. 값이 변경되었는지 여부를 확인하지 않는 경우 다른 프로세스에서 설정한 값을 실수로 덮어쓸 수 있습니다.

기본적으로 RIA Services는 데이터 동시성을 확인하기 위해 전체 원래 엔터티를 변경된 값과 함께 데이터 액세스 계층에 전달하지 않습니다. 대신, RIA Services는 RoundtripOriginalAttribute 특성, ConcurrencyCheckAttribute 특성 또는 TimestampAttribute 특성으로 표시된 멤버만 저장하고 다시 전달합니다. 이러한 동시성 특성은 Entity Framework를 사용할 때 메타데이터 클래스에 적용하거나 POCO로 정의된 데이터 모델을 사용할 때 CLR 개체에 직접 적용할 수 있습니다. 이 구현에서는 동시성 확인에 포함할 멤버만 지정하여 응용 프로그램의 성능을 최적화할 수 있습니다.

상속 계층

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

스레드 보안

이 형식의 모든 public static(Visual Basic의 경우 Shared) 멤버는 스레드로부터 안전합니다. 모든 인스턴스 멤버는 스레드로부터 안전하지 않을 수 있습니다.

플랫폼

개발 플랫폼

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

대상 플랫폼

Change History

참고 항목

참조

RoundtripOriginalAttribute 멤버
System.ComponentModel.DataAnnotations 네임스페이스