以映射规范语言 (MSL) 表示的 UpdateFunction 元素将概念模型中的实体类型的更新函数映射到基础数据库中的存储过程。 将修改函数映射到其中的存储过程必须在存储模型中声明。 有关更多信息,请参见 Function 元素 (SSDL)。
![]() |
---|
如果没有将实体类型的插入、更新或删除这三种操作全部映射到存储过程,则在运行时执行的情况下未映射的操作将失败且会引发 UpdateException。 |
UpdateFunction 元素可以为 ModificationFunctionMapping 元素的子元素,并可应用于 EntityTypeMapping 元素。
UpdateFunction 元素可以具有以下子元素:
AssociationEnd(零个或多个)
ComplexProperty(零个或多个)
ResultBinding(零个或一个)
ScarlarProperty(零个或多个)
适用的特性
下表介绍可应用于 UpdateFunction 元素的特性。
特性名称 | 是否必需 | 值 |
---|---|---|
FunctionName |
是 |
更新函数要映射到的存储过程的命名空间限定名称。 存储过程必须在存储模型中声明。 |
RowsAffectedParameter |
否 |
返回受影响行数的输出参数的名称。 |
示例
下面的示例以 School 模型为基础,并显示用于将 Person 实体类型的更新函数映射到 UpdatePerson 存储过程的 UpdateFunction 元素。 UpdatePerson 存储过程在存储模型中声明。
<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>