Classe RoundtripOriginalAttribute
Se applicato a un membro, questo attributo indica che il valore originale del membro deve essere reinviato al server quando si aggiorna l'oggetto. Se applicato a una classe, l'attributo viene applicato a ogni membro di tale classe.
Spazio dei nomi: System.ComponentModel.DataAnnotations
Assembly: System.ServiceModel.DomainServices.Client (in system.servicemodel.domainservices.client.dll)
Utilizzo
'Utilizzo
Dim instance As RoundtripOriginalAttribute
Sintassi
'Dichiarazione
<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
Esempio
Nell'esempio seguente viene illustrata una classe di metadati dell'indirizzo con RoundtripOriginalAttribute, RequiredAttribute, StringLengthAttribute e ExcludeAttribute applicati ad alcune proprietà.
<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; }
}
}
Osservazioni
L'attributo RoundtripOriginalAttribute viene applicato a una proprietà in un'entità quando si desidera inviare il valore di tale proprietà al server per assicurare la concorrenza dei dati. Se l'attributo non è presente, il valore di tale membro sarà null nell'oggetto originale reinviato al server.
Quando si consente agli utenti di aggiornare o eliminare dati, verificare che i dati dell'origine dati non siano stati modificati da un altro processo prima di procedere con l'aggiornamento o l'eliminazione. Se non si esegue questa verifica, è possibile che i valori impostati da un altro processo vengano sovrascritti accidentalmente.
Per impostazione predefinita, in RIA Services l'entità originale completa non viene passata con i valori modificati al livello di accesso ai dati per verificare la concorrenza dei dati. Al contrario, in Servizi RIA vengono archiviati e passati nuovamente solo i membri contrassegnati con l'attributo RoundtripOriginalAttribute, ConcurrencyCheckAttribute o TimestampAttribute. Questi attributi di concorrenza possono essere applicati alle classi di metadati se si utilizza Entity Framework o direttamente agli oggetti CLR se si utilizzano i modelli dati definiti da POCO. Questa implementazione consente di ottimizzare le prestazioni dell'applicazione specificando solo i membri che si desidera partecipino alla verifica della concorrenza.
Gerarchia di ereditarietà
System.Object
System.Attribute
System.ComponentModel.DataAnnotations.RoundtripOriginalAttribute
Sicurezza dei thread
Tutti i membri statici pubblici (Shared in Visual Basic) di questo tipo sono thread-safe. Non è invece garantita la sicurezza dei membri dell'istanza.
Piattaforme
Piattaforme di sviluppo
Windows XP Home Edition, Windows XP Professional, Windows Server 2003 , Windows Server 2008 e Windows 2000
Piattaforme di destinazione
Change History
Vedere anche
Riferimento
Membri RoundtripOriginalAttribute
Spazio dei nomi System.ComponentModel.DataAnnotations