ComplexTypeMapping-Element (MSL)
Das ComplexTypeMapping-Element in Mapping Specification Language (MSL) ist ein untergeordnetes Element des ResultMapping-Elements und definiert die Zuordnung von einem Funktionsimport im konzeptionellen Modell zu einer gespeicherten Prozedur in der zugrunde liegenden Datenbank, wenn Folgendes zutrifft:
Der Funktionsimport gibt einen konzeptionellen komplexen Typ zurück.
Die Namen der Spalten, die von der gespeicherten Prozedur zurückgegeben werden, entsprechen nicht genau den Namen der Eigenschaften für den komplexen Typ.
Standardmäßig basiert die Zuordnung der von einer gespeicherten Prozedur zurückgegebenen Spalten zu einem komplexen Typ auf den Spalten- und Eigenschaftennamen. Wenn Spaltennamen nicht exakt mit den Eigenschaftennamen übereinstimmen, müssen Sie die Zuordnung mithilfe des ComplexTypeMapping-Elements definieren. Ein Beispiel für die Standardzuordnung finden Sie unter FunctionImportMapping-Element (MSL).
Das ComplexTypeMapping-Element kann die folgenden untergeordneten Elemente aufweisen:
- ScalarProperty (null oder mehrere Elemente)
Anwendbare Attribute
In der folgenden Tabelle werden die Attribute beschrieben, die auf das ComplexTypeMapping-Element anwendbar sind.
Attributname | Ist erforderlich | Wert |
---|---|---|
TypeName |
Ja |
Der namespacequalifizierte Name des komplexen Typs, der zugeordnet wird. |
Beispiel
Betrachten Sie die folgende gespeicherte Prozedur:
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
Betrachten Sie auch den folgenden komplexen Typ des konzeptionellen Modells:
<ComplexType Name="GradeInfo">
<Property Type="Int32" Name="EnrollmentID" Nullable="false" />
<Property Type="Decimal" Name="Grade" Nullable="true"
Precision="3" Scale="2" />
<Property Type="Int32" Name="CourseID" Nullable="false" />
<Property Type="Int32" Name="StudentID" Nullable="false" />
</ComplexType>
Um einen Funktionsimport zu erstellen, der Instanzen des vorherigen komplexen Typs zurückgibt, muss die Zuordnung der Spalten, die von der gespeicherten Prozedur zurückgegeben werden, zu dem Entitätstyp in einem ComplexTypeMapping-Element definiert werden:
<FunctionImportMapping FunctionImportName="GetGrades"
FunctionName="SchoolModel.Store.GetGrades" >
<ResultMapping>
<ComplexTypeMapping TypeName="SchoolModel.GradeInfo">
<ScalarProperty Name="EnrollmentID" ColumnName="enroll_id"/>
<ScalarProperty Name="CourseID" ColumnName="course_id"/>
<ScalarProperty Name="StudentID" ColumnName="student_id"/>
<ScalarProperty Name="Grade" ColumnName="grade"/>
</ComplexTypeMapping>
</ResultMapping>
</FunctionImportMapping>
Siehe auch
Konzepte
Weitere Ressourcen
Modellieren und Zuordnen (Entity Framework)
How to: Import a Stored Procedure
How to: Map a Function Import to a Complex Type