Compartir a través de


EntityTypeMapping (Elemento) (MSL)

El elemento EntityTypeMapping del lenguaje de especificación de asignaciones (MSL) define la asignación entre un tipo de entidad del modelo conceptual y las tablas o vistas de la base de datos subyacente. Para obtener información sobre los tipos de entidad del modelo conceptual y las tablas o vistas de la base de datos subyacente, vea EntityType (Elemento) (CSDL) y EntitySet (Elemento) (SSDL). El atributo TypeName del elemento EntityTypeMapping especifica el tipo de entidad del modelo conceptual que se está asignando. El atributo StoreEntitySet del elemento MappingFragment secundario especifica la tabla o vista que se está asignando.

El elemento secundario ModificationFunctionMapping se puede utilizar para asignar las funciones de inserción, actualización o eliminación de tipos de entidad a procedimientos almacenados de la base de datos.

El elemento EntityTypeMapping puede tener los siguientes elementos secundarios:

Bb399272.note(es-es,VS.100).gifNota:
Los elementos MappingFragment y ModificationFunctionMapping no pueden ser elementos secundarios del elemento EntityTypeMapping al mismo tiempo.

Bb399272.note(es-es,VS.100).gifNota:
Los elementos ScalarProperty y Condition solo pueden ser elementos secundarios del elemento EntityTypeMapping cuando se utiliza dentro de un elemento FunctionImportMapping.

Atributos aplicables

En la tabla siguiente se explican los atributos que se pueden aplicar al elemento EntityTypeMapping.

Nombre de atributo Es necesario Valor

TypeName

El nombre completo, calificado con el espacio de nombres, del tipo de entidad del modelo conceptual que se está asignando.

Si el tipo es abstracto o un tipo derivado, el valor debe ser IsOfType(Namespace-qualified_type_name).

Ejemplo

En el ejemplo siguiente se muestra un elemento 059a50c3-5d96-439c-a64d-e3e5dfa0abb0 con dos elementos secundarios EntityTypeMapping. En el primer elemento EntityTypeMapping, el tipo de entidad SchoolModel.Person se asigna a la tabla Person. En el segundo elemento EntityTypeMapping, la funcionalidad de actualización del tipo SchoolModel.Person está asignada a un procedimiento almacenado, UpdatePerson, en la base de datos.

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

Ejemplo

En el ejemplo siguiente se muestra la asignación de una jerarquía de tipos en la que el tipo raíz es abstracto. Tenga en cuenta el uso de la sintaxis IsOfType para los atributos 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>

Vea también

Conceptos

Especificación CSDL
Especificación SSDL

Otros recursos

Modelado y asignación (Entity Framework)