次の方法で共有


Condition 要素 (MSL)

マッピング仕様言語 (MSL) の Condition 要素は、概念モデルと基になるデータベース間のマッピングに条件を設定します。 XML ノード内で定義されるマッピングは、子 Condition 要素で指定されたすべての条件を満たす場合に有効です。 それ以外の場合、マッピングは無効です。 たとえば、MappingFragment 要素に 1 つ以上の Condition child 要素が含まれている場合、MappingFragment node 内で定義されるマッピングは、子の Condition 要素のすべての条件が満たされる場合にのみ有効になります。

各条件は Name (Name 属性で指定される概念モデル エンティティ プロパティの名前) か、または ColumnName (ColumnName 属性で指定されるデータベースの列名) のいずれかに適用できます。 Name 属性を設定すると、エンティティのプロパティ値に対して条件がチェックされます。 ColumnName 属性を設定すると、列値に対して条件がチェックされます。 Condition 要素で指定できるのは、Name または ColumnName 属性のいずれかのみです。

Cc716732.note(ja-jp,VS.100).gif注 :
Condition 要素を FunctionImportMapping 要素内で使用した場合、Name 属性のみが適用されません。

The Condition element can be a child of the following elements:

Condition 要素には、子要素を含めることはできません。

適用可能な属性

次の表は、Condition 要素に適用できる属性を示しています。

属性名 必須 Value

ColumnName

いいえ

条件の評価に使用される値のテーブル列の名前。

IsNull

いいえ

True または False。 値が True で列値が null の場合、または値が False で列値が null でない場合、条件は True になります。 それ以外の場合、条件は False です。

IsNull 属性と Value 属性は同時に使用できません。

Value

いいえ

列値と比較される値。 値が同じ場合、条件は True です。 それ以外の場合、条件は False です。

IsNull 属性と Value 属性は同時に使用できません。

Name

いいえ

条件の評価に使用される値を持つ概念モデルのエンティティ プロパティの名前。

Condition 要素が FunctionImportMapping 要素内で使用されている場合、この属性は適用されません。

次の例は、MappingFragment 要素の子としての Condition 要素を示しています。 When HireDate is not null and EnrollmentDate is null, data is mapped between the SchoolModel.Instructor type and the PersonID and HireDate columns of the Person table. When EnrollmentDate is not null and HireDate is null, data is mapped between the SchoolModel.Student type and the PersonID and Enrollment columns of the Person table.

<EntitySetMapping Name="People">
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Person)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="FirstName" ColumnName="FirstName" />
      <ScalarProperty Name="LastName" ColumnName="LastName" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Instructor)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="HireDate" ColumnName="HireDate" />
      <Condition ColumnName="HireDate" IsNull="false" />
      <Condition ColumnName="EnrollmentDate" IsNull="true" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Student)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="EnrollmentDate" 
                      ColumnName="EnrollmentDate" />
      <Condition ColumnName="EnrollmentDate" IsNull="false" />
      <Condition ColumnName="HireDate" IsNull="true" />
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>

参照

その他のリソース

CSDL、SSDL、および MSL 仕様
モデリングとマッピング (Entity Framework)