Condividi tramite


Elemento EntityTypeMapping (MSL)

L'elemento EntityTypeMapping in MSL (Mapping Specification Language) consente di definire il mapping tra un tipo di entità nel modello concettuale e le tabelle o visualizzazioni nel database sottostante.Per informazioni sui tipi di entità del modello concettuale e sulle tabelle o visualizzazioni del database sottostante, vedere Elemento EntityType (CSDL) e Elemento EntitySet (SSDL).Il tipo di entità del modello concettuale di cui è in corso il mapping è specificato dall'attributo TypeName dell'elemento EntityTypeMapping.La tabella o visualizzazione di cui è in corso il mapping viene specificata dall'attributo StoreEntitySet dell'elemento MappingFragment figlio.

L'elemento figlio ModificationFunctionMapping può essere utilizzato per eseguire il mapping delle funzioni di inserimento, aggiornamento o eliminazione dei tipi di entità alle stored procedure nel database.

Nell'elemento EntityTypeMapping possono essere inclusi gli elementi figlio seguenti:

Nota

Gli elementi MappingFragment e ModificationFunctionMapping non possono essere contemporaneamente elementi figlio dell'elemento EntityTypeMapping.

Nota

Gli elementi ScalarProperty e Condition possono essere solo elementi figlio dell'elemento EntityTypeMapping quando viene utilizzato all'interno di un elemento FunctionImportMapping.

Attributi applicabili

Nella tabella riportata di seguito vengono descritti gli attributi che è possibile applicare all'elemento EntityTypeMapping.

Nome attributo

È obbligatorio

Valore

TypeName

Nome completo dello spazio dei nomi del tipo di entità del modello concettuale di cui è in corso il mapping.

Se il tipo è astratto o un tipo derivato, il valore deve essere IsOfType(Namespace-qualified_type_name).

Esempio

Nell'esempio riportato di seguito viene mostrato un elemento EntitySetMapping con due elementi EntityTypeMapping figlio.Nel primo elemento EntityTypeMapping il tipo di entità SchoolModel.Person viene mappato alla tabella Person.Nel secondo elemento EntityTypeMapping la funzionalità di aggiornamento del tipo SchoolModel.Person viene mappata a una stored procedure, UpdatePerson, nel database.

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

Esempio

Nell'esempio successivo viene mostrato il mapping di una gerarchia di tipo in cui il tipo radice è astratto.Si noti l'utilizzo della sintassi IsOfType per gli attributi 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>
<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>

Vedere anche

Concetti

Specifiche CSDL

Specifiche SSDL

Altre risorse

Modellazione e mapping