Elemento ScalarProperty (MSL)

L'elemento ScalarProperty in MSL (Mapping Specification Language) consente di eseguire il mapping di una proprietà su un tipo di entità del modello concettuale, un tipo complesso o un'associazione a una colonna della tabella o parametro della stored procedure nel database sottostante.

Bb399167.note(it-it,VS.100).gifNota:
Le stored procedure a cui le funzioni di modifica sono mappate devono essere dichiarate nel modello di archiviazione.Per ulteriori informazioni, vedere Elemento Function (SSDL).

L'elemento ScalarProperty può essere un figlio dei seguenti elementi:

Come figlio dell'elemento MappingFragment, ComplexProperty o EndProperty, l'elemento ScalarProperty esegue il mapping di una proprietà nel modello concettuale a una colonna nel database. Come figlio dell'elemento InsertFunction, UpdateFunction o DeleteFunction , l'elemento ScalarProperty esegue il mapping di una proprietà nel modello concettuale a un parametro della stored procedure.

L'elemento ScalarProperty non può contenere elementi figlio.

Attributi applicabili

Gli attributi che vengono applicati all'elemento ScalarProperty differiscono a seconda del ruolo dell'elemento.

Nella tabella seguente vengono descritti gli attributi che sono applicabili quando l'elemento ScalarProperty viene utilizzato per eseguire il mapping di una proprietà del modello concettuale a una colonna nel database:

Nome attributo È obbligatorio Valore

Name

Nome della proprietà del modello concettuale di cui è in corso il mapping.

ColumnName

Nome della colonna della tabella di cui è in corso il mapping.

Nella tabella seguente vengono descritti gli attributi che sono applicabili all'elemento ScalarProperty quando viene utilizzato per eseguire il mapping di una proprietà del modello concettuale a un parametro della stored procedure:

Nome attributo È obbligatorio Valore

Name

Nome della proprietà del modello concettuale di cui è in corso il mapping.

ParameterName

Nome del parametro di cui è in corso il mapping.

Version

No

Current o Original a seconda se il valore corrente o il valore originale della proprietà deve essere utilizzato o meno per i controlli della concorrenza.

Esempio

Nell'esempio riportato di seguito vengono mostrati due utilizzi dell'elemento ScalarProperty:

  • Per eseguire il mapping delle proprietà del tipo di entità Person alle colonne della tabella Person.

  • Per eseguire il mapping delle proprietà del tipo di entità Person ai parametri della stored procedure UpdatePerson. Le stored procedure vengono dichiarate nel modello di archiviazione.

<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>
      <InsertFunction FunctionName="SchoolModel.Store.InsertPerson">
        <ScalarProperty Name="EnrollmentDate"
                        ParameterName="EnrollmentDate" />
        <ScalarProperty Name="HireDate" ParameterName="HireDate" />
        <ScalarProperty Name="FirstName" ParameterName="FirstName" />
        <ScalarProperty Name="LastName" ParameterName="LastName" />
        <ResultBinding Name="PersonID" ColumnName="NewPersonID" />
      </InsertFunction>
      <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>
      <DeleteFunction FunctionName="SchoolModel.Store.DeletePerson">
        <ScalarProperty Name="PersonID" ParameterName="PersonID" />
      </DeleteFunction>
    </ModificationFunctionMapping>
  </EntityTypeMapping>
</EntitySetMapping>

Esempio

Nell'esempio successivo viene mostrato l'elemento ScalarProperty utilizzato per eseguire il mapping delle funzioni Insert e Delete di un'associazione del modello concettuale alle stored procedure nel database. Le stored procedure vengono dichiarate nel modello di archiviazione.

<AssociationSetMapping Name="CourseInstructor" 
                       TypeName="SchoolModel.CourseInstructor" 
                       StoreEntitySet="CourseInstructor">
  <EndProperty Name="Person">
    <ScalarProperty Name="PersonID" ColumnName="PersonID" />
  </EndProperty>
  <EndProperty Name="Course">
    <ScalarProperty Name="CourseID" ColumnName="CourseID" />
  </EndProperty>
  <ModificationFunctionMapping>
    <InsertFunction FunctionName="SchoolModel.Store.InsertCourseInstructor" >   
      <EndProperty Name="Course">
        <ScalarProperty Name="CourseID" ParameterName="courseId"/>
      </EndProperty>
      <EndProperty Name="Person">
        <ScalarProperty Name="PersonID" ParameterName="instructorId"/>
      </EndProperty>
    </InsertFunction>
    <DeleteFunction FunctionName="SchoolModel.Store.DeleteCourseInstructor">
      <EndProperty Name="Course">
        <ScalarProperty Name="CourseID" ParameterName="courseId"/>
      </EndProperty>
      <EndProperty Name="Person">
        <ScalarProperty Name="PersonID" ParameterName="instructorId"/>
      </EndProperty>
    </DeleteFunction>
  </ModificationFunctionMapping>
</AssociationSetMapping>

Vedere anche

Altre risorse

Specifiche CSDL, SSDL e MSL
Modellazione e mapping (Entity Framework)