Элемент ResultBinding (язык MSL)
Элемент ResultBinding в языке MSL сопоставляет значения столбцов, возвращаемых хранимыми процедурами свойствам сущности в концептуальной модели, при сопоставлении функций изменения типа сущности с хранимыми процедурами в основной базе данных. Например, если хранимая процедура возвращает значения столбца идентификаторов, то элемент ResultBinding сопоставляет возвращенное значение со свойством типа сущности в концептуальной модели.
Элемент ResultBinding может быть дочерним элементом элемента InsertFunction или элемента UpdateFunction.
Элемент ResultBinding не может иметь дочерние элементы.
Применимые атрибуты
В следующей таблице описываются атрибуты, которые применимы к элементу ResultBinding.
Имя атрибута | Необходимо | Значение |
---|---|---|
Name |
Да |
Имя свойства сущности в концептуальной модели, с которым выполняется сопоставление. |
ColumnName |
Да |
Имя столбца, с которым выполнятся сопоставление. |
Пример
Следующий пример основан на модели School. Он показывает, каким образом можно использовать элемент InsertFunction для сопоставления функции вставки типа сущности Person с хранимой процедурой InsertPerson. (Хранимая процедура InsertPerson приведена ниже и объявлена в модели хранения). Элемент ResultBinding служит для сопоставления значения столбца, возвращаемого хранимой процедурой (NewPersonID), со свойством типа сущности (PersonID).
<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>
Следующая инструкция Transact-SQL описывает хранимую процедуру InsertPerson.
CREATE PROCEDURE [dbo].[InsertPerson]
@LastName nvarchar(50),
@FirstName nvarchar(50),
@HireDate datetime,
@EnrollmentDate datetime
AS
INSERT INTO dbo.Person (LastName,
FirstName,
HireDate,
EnrollmentDate)
VALUES (@LastName,
@FirstName,
@HireDate,
@EnrollmentDate);
SELECT SCOPE_IDENTITY() as NewPersonID;
См. также
Другие ресурсы
Спецификации языка CSDL, SSDL и MSL
Моделирование и сопоставление (платформа Entity Framework)