AssociationSetMapping の Condition 要素では、エンティティ データ モデル (EDM) でマップされる Association の有効性に関する論理的な要件を指定します。アソシエーションのマッピングにより、関連エンティティのプロパティが対応するデータ テーブル内の列が識別されます。
次の AssociationSetMapping 要素では、概念スキーマ定義言語 (CSDL) で定義された Employee_Employee_ManagerID アソシエーションを、AdventureWorks データベースの HumanResources セグメントでマップしています。次のマッピング スキーマによって、Employee エンティティが、マネージャとして指定された別の Employee エンティティに関連付けられます。
<?xml version="1.0" encoding="utf-8"?>
<Mapping Space="C-S"
xmlns:edm="urn:schemas-microsoft-com:windows:storage:mapping:CS"
xmlns="urn:schemas-microsoft-com:windows:storage:mapping:CS">
<EntityContainerMapping CdmEntityContainer="HumanResources"
StorageEntityContainer="HumanResources">
<AssociationSetMapping Name="Employee_Employee_ManagerID"
TypeName="AdventureWorksHRModel.Employee_Employee_ManagerID"
StoreEntitySet="Employee">
<EndProperty Name="Employee">
<ScalarProperty Name="EmployeeID"
ColumnName="ManagerID" />
</EndProperty>
<EndProperty Name="EmployeeManager">
<ScalarProperty Name="EmployeeID"
ColumnName="EmployeeID" />
</EndProperty>
<Condition ColumnName="ManagerID" IsNull="false" />
</AssociationSetMapping>
</EntityContainerMapping>
この Association によって関連付けられるエンティティは、どちらも Employee エンティティです。マッピングは、AssociationSetMappng の最後の行で指定された Condition に左右されます。Association を有効にするには、Employee エンティティを、マネージャとして指定された別の Employee エンティティに関連付ける必要があります。この関連付けを表すストレージ構造は、Employee テーブルの ManagerID 列の外部キー制約です。この制約が NULL の場合、エンティティの関連付けが行われないため、Association のインスタンスで追加の詳細を割り当てても意味がありません。ManagerID 値が NULL のときにコードでこのような Association が作成された場合は、SaveChanges メソッドの呼び出し時に Association から例外がスローされます。
参照
概念
EntityContainerMapping 要素 (MSL)
Association 要素 (CSDL)
AssociationSet 要素 (EntityContainer CSDL)
Association 要素 (SSDL)
AssociationSet 要素 (EntityContainer SSDL)
AdventureWorks Complete Model (EDM)