次の方法で共有


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

メタデータ クラスを使用して SalesOrderHeaderSalesOrderDetail の構成関係を定義する方法を次の例に示します。

<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 名前空間