ResultMapping 項目 (MSL)
對應規格語言 (MSL) 中的 ResultMapping 項目會在下列條件成立時,定義概念模型中之函式匯入與基礎資料庫中之預存程序間的對應:
函式匯入會傳回概念模型實體類型或複雜型別。
預存程序所傳回之資料行名稱未與實體類型或複雜型別上的屬性名稱完全相符。
根據預設,預存程序所傳回之資料行與實體類型或複雜型別間的對應是以資料行和屬性名稱為基礎。如果資料行名稱未完全符合屬性名稱,您必須使用 ResultMapping 項目來定義對應。如需預設對應之範例,請參閱 FunctionImportMapping 項目 (MSL)。
ResultMapping 項目是 FunctionImportMapping 項目的子項目。
ResultMapping 項目可以擁有下列子項目:
沒有屬性適用於 ResultMapping 項目。
範例
請考慮下列預存程序:
CREATE PROCEDURE [dbo].[GetGrades]
@student_Id int
AS
SELECT EnrollmentID as enroll_id,
Grade as grade,
CourseID as course_id,
StudentID as student_id
FROM dbo.StudentGrade
WHERE StudentID = @student_Id
同時請考慮下列概念模型實體類型:
<EntityType Name="StudentGrade">
<Key>
<PropertyRef Name="EnrollmentID" />
</Key>
<Property Name="EnrollmentID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
<Property Name="CourseID" Type="Int32" Nullable="false" />
<Property Name="StudentID" Type="Int32" Nullable="false" />
<Property Name="Grade" Type="Decimal" Precision="3" Scale="2" />
</EntityType>
<EntityType Name="StudentGrade">
<Key>
<PropertyRef Name="EnrollmentID" />
</Key>
<Property Name="EnrollmentID" Type="Int32" Nullable="false"
annotation:StoreGeneratedPattern="Identity" />
<Property Name="CourseID" Type="Int32" Nullable="false" />
<Property Name="StudentID" Type="Int32" Nullable="false" />
<Property Name="Grade" Type="Decimal" Precision="3" Scale="2" />
</EntityType>
為了建立會傳回前一個實體類型之執行個體的函式匯入,必須在 ResultMapping 項目中定義預存程序所傳回之資料行與實體類型間的對應:
<FunctionImportMapping FunctionImportName="GetGrades" FunctionName="SchoolModel.Store.GetGrades">
<ResultMapping>
<EntityTypeMapping TypeName="SchoolModel.StudentGrade">
<ScalarProperty Name="EnrollmentID" ColumnName="enroll_id" />
<ScalarProperty Name="CourseID" ColumnName="course_id" />
<ScalarProperty Name="StudentID" ColumnName="student_id" />
<ScalarProperty Name="Grade" ColumnName="grade" />
</EntityTypeMapping>
</ResultMapping>
</FunctionImportMapping>
<FunctionImportMapping FunctionImportName="GetGrades"
FunctionName="SchoolModel.Store.GetGrades" >
<ResultMapping>
<EntityTypeMapping TypeName="SchoolModel.StudentGrade">
<ScalarProperty Name="EnrollmentID" ColumnName="enroll_id"/>
<ScalarProperty Name="CourseID" ColumnName="course_id"/>
<ScalarProperty Name="StudentID" ColumnName="student_id"/>
<ScalarProperty Name="Grade" ColumnName="grade"/>
</EntityTypeMapping>
</ResultMapping>
</FunctionImportMapping>
請參閱
工作
How to: Import a Stored Procedure