次の方法で共有


EntityTypeMapping 要素 (MSL)

マッピング仕様言語 (MSL) の EntityTypeMapping 要素は、概念モデルのエンティティ型と基になるデータベースのテーブルまたはビューの間のマッピングを定義します。 For information about conceptual model entity types and underlying database tables or views, see EntityType Element (CSDL) and EntitySet Element (SSDL). マッピングする概念モデルのエンティティ型は、EntityTypeMapping 要素の TypeName 属性で指定します。 マッピングするテーブルまたはビューは、子の MappingFragment 要素StoreEntitySet 属性によって指定されます。

ModificationFunctionMapping 子要素を使用すると、エンティティ型の挿入関数、更新関数、または削除関数をデータベース内のストアド プロシージャにマッピングできます。

The EntityTypeMapping element can have the following child elements:

Bb399272.note(ja-jp,VS.100).gif注 :
MappingFragment 要素と ModificationFunctionMapping 要素を同時に EntityTypeMapping 要素の子要素にすることはできません。

Bb399272.note(ja-jp,VS.100).gif注 :
ScalarProperty 要素と Condition 要素は、FunctionImportMapping 要素内で使用される場合、EntityTypeMapping 要素の子要素にのみなることができます。

適用可能な属性

The following table describes the attributes that can be applied to the EntityTypeMapping element.

属性名 必須 Value

TypeName

有効

マッピングされている概念モデルのエンティティ型の名前空間修飾名です。

型が抽象型または派生型である場合、値は IsOfType(Namespace-qualified_type_name) になる必要があります。

次の例は、2 つの EntityTypeMapping 子要素を持つ EntitySetMapping 要素を示しています。 最初の EntityTypeMapping 要素では、SchoolModel.Person エンティティ型は Person テーブルにマッピングされます。 2 番目の EntityTypeMapping 要素では、SchoolModel.Person 型の更新機能はデータベース内のストアド プロシージャ UpdatePerson にマッピングされます。

<EntitySetMapping Name="People">
  <EntityTypeMapping TypeName="SchoolModel.Person">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="LastName" ColumnName="LastName" />
      <ScalarProperty Name="FirstName" ColumnName="FirstName" />
      <ScalarProperty Name="HireDate" ColumnName="HireDate" />
      <ScalarProperty Name="EnrollmentDate" ColumnName="EnrollmentDate" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="SchoolModel.Person">
    <ModificationFunctionMapping>
      <UpdateFunction FunctionName="SchoolModel.Store.UpdatePerson">
        <ScalarProperty Name="EnrollmentDate" ParameterName="EnrollmentDate" 
                        Version="Current" />
        <ScalarProperty Name="HireDate" ParameterName="HireDate" 
                        Version="Current" />
        <ScalarProperty Name="FirstName" ParameterName="FirstName" 
                        Version="Current" />
        <ScalarProperty Name="LastName" ParameterName="LastName" 
                        Version="Current" />
        <ScalarProperty Name="PersonID" ParameterName="PersonID" 
                        Version="Current" />
      </UpdateFunction>
    </ModificationFunctionMapping>
  </EntityTypeMapping>
</EntitySetMapping>

次の例は、ルート型が抽象である型階層のマッピングを示しています。 Note the use of the syntax for the TypeName 属性に対して IsOfType 構文が使用されていることに注目してください。

<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 仕様

その他のリソース

モデリングとマッピング (Entity Framework)