ResultBinding 요소(MSL)
MSL(매핑 사양 언어)의 ResultBinding 요소는 엔터티 형식 수정 함수가 기본 데이터베이스의 저장 프로시저에 매핑되는 경우 저장 프로시저에서 반환되는 열 값을 개념적 모델의 엔터티 속성에 매핑합니다. 예를 들어, ID 열의 값이 삽입 저장 프로시저에서 반환되는 경우 ResultBinding 요소는 반환된 값을 개념적 모델의 엔터티 형식 속성에 매핑합니다.
ResultBinding 요소는 InsertFunction 요소 또는 UpdateFunction 요소의 자식일 수 있습니다.
ResultBinding 요소에는 자식 요소가 있을 수 없습니다.
적용 가능한 특성
다음 표에서는 ResultBinding 요소에 적용할 수 있는 특성에 대해 설명합니다.
특성 이름 | 필수 여부 | 값 |
---|---|---|
Name |
예 |
매핑되는 개념적 모델의 엔터티 속성 이름입니다. |
ColumnName |
예 |
매핑되는 열의 이름입니다. |
예제
다음 예제는 School 모델을 기반으로 하며 Person 엔터티 형식의 삽입 함수를 InsertPerson 저장 프로시저에 매핑하는 데 사용되는 InsertFunction 요소를 보여 줍니다. 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;