Condividi tramite


Elemento Condition (MSL)

L'elemento Condition in MSL (Mapping Specification Language) consente di stabilire le condizioni per i mapping tra il modello concettuale e il database sottostante.Il mapping definito all'interno di un nodo XML è valido se tutte le condizioni, come specificato negli elementi Condition figlio, sono soddisfatte.In caso contrario, il mapping non è valido.Se ad esempio in un elemento MappingFragment sono contenuti uno o più elementi Condition figlio, il mapping definito all'interno del nodo MappingFragment sarà valido solo se vengono soddisfatte tutte le condizioni degli elementi Condition figlio.

Ogni condizione può essere applicata a un oggetto Name (il nome di una proprietà dell'entità del modello concettuale, specificato dall'attributo Name) o a un oggetto ColumnName (il nome di una colonna nel database, specificato dall'attributo ColumnName).Quando l'attributo Name è impostato, la condizione viene confrontata con un valore della proprietà dell'entità.Quando l'attributo ColumnName è impostato, la condizione viene confrontata con il valore di una colonna.Solo uno degli attributi Name o ColumnName può essere specificato in un elemento Condition.

Nota

Quando l'elemento Condition viene utilizzato all'interno di un elemento FunctionImportMapping, solo l'attributo Name non è applicabile.

L'elemento Condition può essere un figlio dei seguenti elementi:

L'elemento Condition non può includere alcun elemento figlio.

Attributi applicabili

Nella tabella riportata di seguito vengono descritti gli attributi applicabili all'elemento Condition:

Nome attributo

È obbligatorio

Valore

ColumnName

No

Nome della colonna della tabella il cui valore viene utilizzato per valutare la condizione.

IsNull

No

True o False.Se il valore è True e il valore della colonna è null o se il valore è False e il valore della colonna non è null, la condizione è true.In caso contrario, la condizione è false.

Non è possibile utilizzare contemporaneamente gli attributi IsNull e Value.

Value

No

Valore con cui viene confrontato il valore della colonna.Se i valori sono uguali, la condizione è true.In caso contrario, la condizione è false.

Non è possibile utilizzare contemporaneamente gli attributi IsNull e Value.

Name

No

Nome della proprietà dell'entità del modello concettuale il cui valore viene utilizzato per valutare la condizione.

Questo attributo non è applicabile se l'elemento Condition viene utilizzato all'interno di un elemento FunctionImportMapping.

Esempio

Nell'esempio riportato di seguito vengono mostrati gli elementi Condition come figli degli elementi MappingFragment.Quando HireDate non è null e EnrollmentDate è null, i dati vengono mappati tra il tipo SchoolModel.Instructor e le colonne PersonID e HireDate della tabella Person.Quando EnrollmentDate non è null e HireDate è null, i dati vengono mappati tra il tipo SchoolModel.Student e le colonne PersonID e Enrollment della tabella Person.

<EntitySetMapping Name="People">
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Person)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="FirstName" ColumnName="FirstName" />
      <ScalarProperty Name="LastName" ColumnName="LastName" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Instructor)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="HireDate" ColumnName="HireDate" />
      <Condition ColumnName="HireDate" IsNull="false" />
      <Condition ColumnName="EnrollmentDate" IsNull="true" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Student)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="EnrollmentDate" ColumnName="EnrollmentDate" />
      <Condition ColumnName="EnrollmentDate" IsNull="false" />
      <Condition ColumnName="HireDate" IsNull="true" />
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>
<EntitySetMapping Name="People">
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Person)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="FirstName" ColumnName="FirstName" />
      <ScalarProperty Name="LastName" ColumnName="LastName" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Instructor)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="HireDate" ColumnName="HireDate" />
      <Condition ColumnName="HireDate" IsNull="false" />
      <Condition ColumnName="EnrollmentDate" IsNull="true" />
    </MappingFragment>
  </EntityTypeMapping>
  <EntityTypeMapping TypeName="IsTypeOf(SchoolModel.Student)">
    <MappingFragment StoreEntitySet="Person">
      <ScalarProperty Name="PersonID" ColumnName="PersonID" />
      <ScalarProperty Name="EnrollmentDate" 
                      ColumnName="EnrollmentDate" />
      <Condition ColumnName="EnrollmentDate" IsNull="false" />
      <Condition ColumnName="HireDate" IsNull="true" />
    </MappingFragment>
  </EntityTypeMapping>
</EntitySetMapping>

Vedere anche

Altre risorse

Specifiche CSDL, SSDL e MSL

Modellazione e mapping