Elemento EntitySetMapping (MSL)
L'elemento EntitySetMapping in MSL (Mapping Specification Language) consente di eseguire il mapping di tutti i tipi in un set di entità del modello concettuale ai set di entità nel modello di archiviazione.Un set di entità nel modello concettuale è un contenitore logico per istanze di entità dello stesso tipo (e tipi derivati).Un set di entità nel modello di archiviazione rappresenta una tabella o visualizzazione nel database sottostante.Il set di entità del modello concettuale è specificato dal valore dell'attributo Name dell'elemento EntitySetMapping.La tabella o visualizzazione di cui è stato eseguito il mapping viene specificata dall'attributo StoreEntitySet in ogni elemento MappingFragment figlio o nell'elemento EntitySetMapping stesso.
Nell'elemento EntitySetMapping possono essere inclusi gli elementi figlio seguenti:
EntityTypeMapping (zero o più elementi)
QueryView (zero o un elemento)
MappingFragment (zero o più elementi)
Attributi applicabili
Nella tabella riportata di seguito vengono descritti gli attributi che è possibile applicare all'elemento EntitySetMapping.
Nome attributo |
È obbligatorio |
Valore |
---|---|---|
Name |
Sì |
Nome del set di entità del modello concettuale di cui è in corso il mapping. |
TypeName1 |
No |
Nome del tipo di entità del modello concettuale di cui è in corso il mapping. |
StoreEntitySet1 |
No |
Nome del set di entità del modello di archiviazione a cui viene eseguito il mapping. |
MakeColumnsDistinct |
No |
True o False a seconda se vengono restituite o meno solo righe distinte. Se questo attributo viene impostato su True, l'attributo GenerateUpdateViews dell'elemento EntityContainerMapping deve essere impostato su False. |
1 Gli attributi TypeName e StoreEntitySet possono essere utilizzati al posto degli elementi figlio EntityTypeMapping e MappingFragment per eseguire il mapping di un solo tipo di entità a una sola tabella.
Esempio
Nell'esempio seguente viene mostrato un elemento EntitySetMapping che esegue il mapping di tre tipi (un tipo di base e due tipi derivati) nel set di entità Courses del modello concettuale a tre tabelle diverse del database sottostante.Le tabelle sono specificate dall'attributo StoreEntitySet in ogni elemento MappingFragment.
<EntitySetMapping Name="Courses">
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.Course)">
<MappingFragment StoreEntitySet="Course">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="DepartmentID" ColumnName="DepartmentID" />
<ScalarProperty Name="Credits" ColumnName="Credits" />
<ScalarProperty Name="Title" ColumnName="Title" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.OnlineCourse)">
<MappingFragment StoreEntitySet="OnlineCourse">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="URL" ColumnName="URL" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.OnsiteCourse)">
<MappingFragment StoreEntitySet="OnsiteCourse">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="Time" ColumnName="Time" />
<ScalarProperty Name="Days" ColumnName="Days" />
<ScalarProperty Name="Location" ColumnName="Location" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="Courses">
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.Course)">
<MappingFragment StoreEntitySet="Course">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="DepartmentID" ColumnName="DepartmentID" />
<ScalarProperty Name="Credits" ColumnName="Credits" />
<ScalarProperty Name="Title" ColumnName="Title" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.OnlineCourse)">
<MappingFragment StoreEntitySet="OnlineCourse">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="URL" ColumnName="URL" />
</MappingFragment>
</EntityTypeMapping>
<EntityTypeMapping TypeName="IsTypeOf(SchoolModel1.OnsiteCourse)">
<MappingFragment StoreEntitySet="OnsiteCourse">
<ScalarProperty Name="CourseID" ColumnName="CourseID" />
<ScalarProperty Name="Time" ColumnName="Time" />
<ScalarProperty Name="Days" ColumnName="Days" />
<ScalarProperty Name="Location" ColumnName="Location" />
</MappingFragment>
</EntityTypeMapping>
</EntitySetMapping>