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 属性应用于实体属性。如果此属性不存在,则该成员的值将在发回到服务器的原始对象中为 null。
当允许用户更新或删除数据时,请确保在继续更新或删除操作之前,数据源中的数据尚未被另一个进程更改。如果不检查值是否已更改,则可能会无意中覆盖由另一个进程设置的值。
默认情况下,RIA Services 不为了检查数据并发而将整个原始实体随已更改的值传递到数据访问层,而是仅存储和传回那些标有 RoundtripOriginalAttribute 属性、ConcurrencyCheckAttribute 属性或 TimestampAttribute 属性的成员。这些并发属性可以在使用实体框架时应用于元数据类,或者在使用 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 命名空间