Classe CompositionAttribute
Indica che un membro rappresenta un'associazione appartenente a una gerarchia composizionale.
Spazio dei nomi: System.ComponentModel.DataAnnotations
Assembly: System.ServiceModel.DomainServices.Client (in system.servicemodel.domainservices.client.dll)
Utilizzo
'Utilizzo
Dim instance As CompositionAttribute
Sintassi
'Dichiarazione
<AttributeUsageAttribute(AttributeTargets.Property Or AttributeTargets.Field, AllowMultiple:=False, Inherited:=True)> _
Public NotInheritable Class CompositionAttribute
Inherits Attribute
[AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=false, Inherited=true)]
public sealed class CompositionAttribute : Attribute
[AttributeUsageAttribute(AttributeTargets::Property|AttributeTargets::Field, AllowMultiple=false, Inherited=true)]
public ref class CompositionAttribute sealed : public Attribute
/** @attribute AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=false, Inherited=true) */
public final class CompositionAttribute extends Attribute
AttributeUsageAttribute(AttributeTargets.Property|AttributeTargets.Field, AllowMultiple=false, Inherited=true)
public final class CompositionAttribute extends Attribute
Esempio
Nell'esempio seguente viene illustrato come definire una relazione composizionale tra SalesOrderHeader
e SalesOrderDetail
tramite una classe di metadati.
<MetadataTypeAttribute(GetType(SalesOrderHeader.SalesOrderHeaderMetadata))> _
Partial Public Class SalesOrderHeader
Friend NotInheritable Class SalesOrderHeaderMetadata
Private Sub New()
MyBase.New
End Sub
<Include()> _
<Composition()> _
Public SalesOrderDetails As EntityCollection(Of SalesOrderDetail)
End Class
End Class
[MetadataTypeAttribute(typeof(SalesOrderHeader.SalesOrderHeaderMetadata))]
public partial class SalesOrderHeader
{
internal sealed class SalesOrderHeaderMetadata
{
private SalesOrderHeaderMetadata()
{
}
[Include]
[Composition]
public EntitySet<SalesOrderDetail> SalesOrderDetails;
}
}
Osservazioni
CompositionAttribute viene applicato a una proprietà che rappresenta un'associazione tra due entità appartenenti concettualmente a una gerarchia, ad esempio un'entità SalesOrderHeader
e un'entità SalesOrderDetail
. Queste entità correlate sono note come gerarchia composizionale. Dopo avere definito la gerarchia composizionale tra le classi, è possibile eseguire operazioni di modifica dei dati sulle entità come se si trattasse di una sola unità anziché di entità separate. In questo modo, la logica di livello intermedio risulta semplificata perché è possibile scrivere la logica dell'applicazione per l'intera gerarchia anziché suddividerla in ogni entità e coordinare tale logica suddivisa durante le operazioni sui dati. Per ulteriori informazioni, vedere Compositional Hierarchies.
Gerarchia di ereditarietà
System.Object
System.Attribute
System.ComponentModel.DataAnnotations.CompositionAttribute
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 CompositionAttribute
Spazio dei nomi System.ComponentModel.DataAnnotations