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
範例
下列範例會顯示 RoundtripOriginalAttribute、RequiredAttribute、StringLengthAttribute 和 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 屬性 (Attribute) 套用至實體中的屬性 (Property),前提是您想要將該屬性 (Property) 的值傳送給伺服器來確保資料的並行。如果這個屬性 (Attribute) 不存在,則這個成員的值在傳回至伺服器的原始物件中為 null。
即使使用者可以更新或刪除資料,您也希望能在更新或刪除之前,先確保沒有其他處理序已經變更資料來源中的資料。如果不檢查這些值是否已改變,則可能會不小心覆寫其他處理序設定的值。
根據預設,RIA Services 不會將整個原始實體連同變更的值傳遞給資料存取層來檢查資料的並行。RIA Services 只會儲存那些標記 RoundtripOriginalAttribute 屬性 (Attribute)、ConcurrencyCheckAttribute 屬性或 (Attribute) TimestampAttribute 屬性 (Attribute) 的成員並傳回這些成員。使用 Entity Framework 時,這些並行屬性可以套用至中繼資料類別,使用 POCO 定義資料模型時,則可以直接套用至 CLR 物件。這個實作可讓您最佳化應用程式的效能,其方式是只指定您希望參與並行存取檢查的成員。
繼承階層
System.Object
System.Attribute
System.ComponentModel.DataAnnotations.RoundtripOriginalAttribute
執行緒安全性
任何這個類型的公用靜態 (在 Visual Basic 中為 共用) 成員都具備執行緒安全。 不保證任何執行個體成員安全執行緒。
平台
開發平台
Windows XP Home Edition, Windows XP Professional, Windows Server 2003 、Windows Server 2008 和 Windows 2000
目標平台
Change History
另請參閱
參考
RoundtripOriginalAttribute 成員
System.ComponentModel.DataAnnotations 命名空間