次の方法で共有


RoundtripOriginalAttribute クラス

メンバーに適用する場合、この属性は、オブジェクトの更新時にメンバーの元の値をサーバーに送り返す必要があることを示します。クラスに適用する場合、この属性はそのクラスの各メンバーに適用されます。

名前空間: System.ComponentModel.DataAnnotations
アセンブリ: System.ServiceModel.DomainServices.Client (system.servicemodel.domainservices.client.dll 内)

使用方法

'使用
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

次の例は、プロパティに RoundtripOriginalAttributeRequiredAttributeStringLengthAttribute、および ExcludeAttribute をさまざまに適用したアドレス メタデータ クラスを示しています。

<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 サービスは、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 名前空間