Элемент ResultMapping (язык MSL)
Элемент ResultMapping в языке MSL задает сопоставление между импортом функции в концептуальной модели и хранимой процедурой в основной базе данных при следующих условиях.
Импорт функции возвращает тип сущности концептуальной модели или сложный тип.
Имена столбцов, возвращаемые хранимой процедурой, не совпадают в точности с именами свойств в сложном типе или типе сущности.
По умолчанию сопоставление между столбцами, возвращаемыми хранимой процедурой, и сложным типом или типом сущности выполняется по именам столбцов и свойств. Если имена столбцов в точности не совпадают с именами свойств, то для определения сопоставления необходимо использовать элемент 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>
Для создания импорта функции, возвращающей экземпляры предыдущего типа сущности, сопоставление между столбцами, возвращаемыми хранимой процедурой и типом сущности, должно быть определено в элементе 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>
См. также
Другие ресурсы
Спецификации языка CSDL, SSDL и MSL
Моделирование и сопоставление (платформа Entity Framework)
How to: Import a Stored Procedure