CompositionAttribute クラス
メンバーが構成階層の一部である関連付けを表すことを示します。
名前空間: System.ComponentModel.DataAnnotations
アセンブリ: System.ServiceModel.DomainServices.Client (system.servicemodel.domainservices.client.dll 内)
使用方法
'使用
Dim instance As CompositionAttribute
構文
'宣言
<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
例
メタデータ クラスを使用して SalesOrderHeader
と SalesOrderDetail
の構成関係を定義する方法を次の例に示します。
<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;
}
}
解説
SalesOrderHeader
エンティティと SalesOrderDetail
エンティティなど、概念的に階層の一部となっている 2 つのエンティティ間の関連付けを表すプロパティに CompositionAttribute を適用します。これらの関連エンティティは、構成階層と呼ばれます。クラス間の構成階層を定義したら、エンティティでのデータ変更操作を別々のエンティティではなく 1 つの単位として実行できるようになります。こうすると、ロジックを各エンティティに分割してデータ操作中の分割ロジックの調整を図ることなく、階層全体に対してアプリケーション ロジックを作成することができるため、中間層のロジックが簡略化されます。詳細については、「Compositional Hierarchies」を参照してください。
継承階層
System.Object
System.Attribute
System.ComponentModel.DataAnnotations.CompositionAttribute
スレッド セーフ
この型の public static (Visual Basic では Shared) メンバーは、スレッド セーフです。インスタンス メンバーの場合は、スレッド セーフであるとは限りません。
プラットフォーム
開発プラットフォーム
Windows XP Home Edition, Windows XP Professional, Windows Server 2003 、Windows Server 2008、および Windows 2000
ターゲット プラットフォーム
Change History
参照
リファレンス
CompositionAttribute のメンバー
System.ComponentModel.DataAnnotations 名前空間