Элемент ScalarProperty (язык MSL)

Элемент ScalarProperty в языке MSL сопоставляет свойство в типе сущности концептуальной модели, сложном типе или ассоциации со столбцом в таблице или параметром хранимой процедуры в основной базе данных.

Bb399167.note(ru-ru,VS.100).gifПримечание
Хранимые процедуры, с которыми сопоставляются функции изменения, должны объявляться в модели хранения.Дополнительные сведения см. в разделе Элемент Function (язык SSDL).

Элемент ScalarProperty может быть дочерним элементом следующих элементов:

Так как элемент ScalarProperty является дочерним элементом элемента MappingFragment, ComplexProperty или EndProperty, он сопоставляет свойство в концептуальной модели со столбцом в базе данных. Так как элемент ScalarProperty является дочерним элементом элемента InsertFunction, UpdateFunction или DeleteFunction, он сопоставляет свойство в концептуальной модели с параметром хранимой процедуры.

Элемент ScalarProperty не может иметь дочерние элементы.

Применимые атрибуты

Атрибуты, применимые к элементу ScalarProperty, различаются в зависимости от роли элемента.

В следующей таблице описываются атрибуты, применимые в случае, если элемент ScalarProperty используется для сопоставления свойства концептуальной модели со столбцом в базе данных.

Имя атрибута Необходимо Значение

Name

Да

Имя свойства концептуальной модели, с которым выполняется сопоставление.

ColumnName

Да

Имя столбца таблицы, с которым производится сопоставление.

В следующей таблице описываются атрибуты, применимые к элементу ScalarProperty, когда он используется для сопоставления свойства концептуальной модели с параметром хранимой процедуры.

Имя атрибута Необходимо Значение

Name

Да

Имя свойства концептуальной модели, с которым выполняется сопоставление.

ParameterName

Да

Имя сопоставляемого параметра.

Version

Нет

Current или Original в зависимости от того, должно ли в проверках параллелизма использоваться текущее или исходное значение свойства.

Пример

В следующем примере показываются два способа использования элемента ScalarProperty.

  • Сопоставление свойств типа сущности Person со столбцами таблицы Person.

  • Сопоставление свойств типа сущности 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>
      <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>

Пример

В следующем примере показывается, как можно использовать элемент ScalarProperty для сопоставления функций вставки и удаления ассоциации концептуальной модели с хранимыми процедурами в базе данных. Хранимые процедуры объявляются в модели хранения.

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

См. также

Другие ресурсы

Спецификации языка CSDL, SSDL и MSL
Моделирование и сопоставление (платформа Entity Framework)