Элемент DeleteFunction (язык MSL)
Элемент DeleteFunction в языке определения сопоставлений (MSL) сопоставляет функцию удаления типа сущности или ассоциации в концептуальной модели с хранимой процедурой в основной базе данных. Хранимые процедуры, с которыми сопоставляются функции изменения, должны объявляться в модели хранения. Дополнительные сведения см. в разделе Элемент Function (язык SSDL).
Примечание |
---|
Если не выполнено сопоставление всех трех операций (вставки, обновления и удаления типов сущностей) хранимым процедурам, то несопоставленные операции выдадут ошибки во время выполнения и будет вызвано исключение UpdateException. |
Элемент DeleteFunction, применяемый к EntityTypeMapping
При применении к элементу EntityTypeMapping элемент DeleteFunction сопоставляет функцию удаления типа сущности в концептуальной модели с хранимой процедурой.
Элемент DeleteFunction может иметь следующие дочерние элементы во время применения к элементу EntityTypeMapping.
AssociationEnd (ноль и более)
ComplexProperty (ноль и более)
ScarlarProperty (ноль и более)
Применимые атрибуты
В следующей таблице описываются атрибуты, которые могут быть применены к элементу DeleteFunction в то случае, если он применяется к элементу EntityTypeMapping.
Имя атрибута | Необходимо | Значение |
---|---|---|
FunctionName |
Да |
Имя хранимой процедуры (с указанием пространства имен), с которой сопоставляется функция удаления. Хранимая процедура должна объявляться в модели хранения. |
RowsAffectedParameter |
Нет |
Имя выходного параметра, возвращающего количество обработанных строк. |
Пример
Следующий пример построен на основе модели School. В нем показано использование элемента DeleteFunction для сопоставления функции удаления типа сущности Person с хранимой процедурой DeletePerson. Хранимая процедура DeletePerson объявляется в модели хранения.
<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>
Элемент DeleteFunction, применяемый к AssociationSetMapping
При применении к элементу AssociationSetMapping элемент DeleteFunction сопоставляет функцию удаления ассоциации в концептуальной модели с хранимой процедурой.
Элемент DeleteFunction может иметь следующие дочерние элементы во время применения к элементу AssociationSetMapping.
Применимые атрибуты
В следующей таблице описываются атрибуты, которые можно применить к элементу DeleteFunction в случае, если он применяется к элементу AssociationSetMapping.
Имя атрибута | Необходимо | Значение |
---|---|---|
FunctionName |
Да |
Имя хранимой процедуры (с указанием пространства имен), с которой сопоставляется функция удаления. Хранимая процедура должна объявляться в модели хранения. |
RowsAffectedParameter |
Нет |
Имя выходного параметра, возвращающего количество обработанных строк. |
Пример
Следующий пример построен на основе модели School. В нем показано использование элемента DeleteFunction для сопоставления функции удаления ассоциации CourseInstructor с хранимой процедурой DeleteCourseInstructor. Хранимая процедура DeleteCourseInstructor объявляется в модели хранения.
<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)