Элемент 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)