Élément EntityTypeMapping
Dans le langage MSL (Mapping Specification Language), l'élément EntityTypeMapping définit le mappage entre un type d'entité du modèle conceptuel et les tables ou les vues de la base de données sous-jacente. Pour plus d'informations sur les types d'entité de modèle conceptuel et les tables ou les vues de base de données sous-jacente, consultez Élément EntityType (CSDL) et Élément EntitySet (SSDL). Le type d'entité de modèle conceptuel mappé est spécifié par l'attribut TypeName de l'élément EntityTypeMapping. La table ou la vue mappée est spécifiée par l'attribut StoreEntitySet de l'élément MappingFragment enfant.
L'élément enfant ModificationFunctionMapping peut être utilisé pour mapper les fonctions d'insertion, de mise à jour ou de suppression de types d'entités aux procédures stockées de la base de données.
L'élément EntityTypeMapping peut avoir les éléments enfants suivants :
MappingFragment (zéro, un ou plusieurs éléments) ;
ModificationFunctionMapping (zéro ou un élément) ;
Remarque : |
---|
Les éléments MappingFragment et ModificationFunctionMapping ne peuvent pas être des éléments enfants de l'élément EntityTypeMapping en même temps. |
Remarque : |
---|
Les éléments Condition et ScalarProperty peuvent être uniquement des éléments enfants de l'élément EntityTypeMapping lorsqu'il est utilisé dans un élément FunctionImportMapping. |
Attributs applicables
Le tableau ci-dessous décrit les attributs qui peuvent s'appliquer à l'élément EntityTypeMapping.
Nom d'attribut | Requis | Valeur |
---|---|---|
TypeName |
Oui |
Nom qualifié par un espace de noms du type d'entité de modèle conceptuel mappé. Si le type correspond à un type abstrait ou dérivé, la valeur doit être |
Exemple
L'exemple ci-dessous illustre un élément EntitySetMapping couplé à deux éléments EntityTypeMapping enfants. Dans le premier élément EntityTypeMapping, le type d'entité SchoolModel.Person est mappé à la table Person. Dans le deuxième élément EntityTypeMapping, la fonctionnalité de mise à jour du type SchoolModel.Person est mappée à une procédure stockée, UpdatePerson, dans la base de données.
<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>
Exemple
L'exemple suivant illustre le mappage d'une hiérarchie de types dont le type racine est abstrait. Notez la façon dont la syntaxe IsOfType
est utilisée pour les attributs TypeName.
<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>
Voir aussi
Concepts
Spécification CSDL
Spécification SSDL