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.

Cc716732.note(it-it,VS.100).gifNota:
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>

Vedere anche

Altre risorse

Specifiche CSDL, SSDL e MSL
Modellazione e mapping (Entity Framework)