Элемент ScalarProperty (язык MSL)
Элемент ScalarProperty в языке MSL сопоставляет свойство в типе сущности концептуальной модели, сложном типе или ассоциации со столбцом в таблице или параметром хранимой процедуры в основной базе данных.
Примечание |
---|
Хранимые процедуры, с которыми сопоставляются функции изменения, должны объявляться в модели хранения.Дополнительные сведения см. в разделе Элемент 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)