Элемент Condition (язык MSL)
Элемент Condition в языке MSL задает условия для сопоставления между концептуальной моделью и основной базой данных. Сопоставление, определенное в XML-узле, является допустимым, если соблюдены все условия, заданные в дочерних элементах Condition. В противном случае сопоставление недействительно. Например, если элемент MappingFragment содержит один или несколько дочерних элементов Condition, то сопоставление, определенное в узле MappingFragment, будет допустимым только при соблюдении всех условий дочерних элементов Condition.
Каждое условие может применяться либо к Name (имени свойства сущности концептуальной модели, заданному атрибутом Name), либо к ColumnName (имени столбца в базе данных, заданному атрибутом ColumnName). При задании атрибута Name проверяется соответствие условия значению свойства сущности. При задании атрибута ColumnName проверяется соответствие условия значению столбца. В элементе Condition может быть задан только один из атрибутов Name или ColumnName.
Примечание |
---|
Если элемент Condition используется внутри элемента FunctionImportMapping, то неприменим лишь атрибут Name. |
Элемент Condition может быть дочерним элементом следующих элементов:
У элемента Condition не может быть дочерних элементов.
Применимые атрибуты
В следующей таблице описываются атрибуты, которые применимы к элементу Condition.
Имя атрибута | Необходимо | Значение |
---|---|---|
ColumnName |
Нет |
Имя столбца таблицы, значение которого используется для оценки условия. |
IsNull |
Нет |
True или False. При значении True и значении столбца null, либо при значении False, когда значение столбца не равно null, условие считается выполненным. В противном случае условие имеет значение false. Атрибуты IsNull и Value нельзя использовать одновременно. |
Value |
Нет |
Значение, с которым сравнивается значение столбца. Если значения совпадают, условие верно. В противном случае условие имеет значение false. Атрибуты IsNull и Value нельзя использовать одновременно. |
Name |
Нет |
Имя свойства сущности концептуальной модели, значение которого используется для оценки условия. Этот атрибут неприменим, если элемент Condition используется внутри элемента FunctionImportMapping. |
Пример
В следующем примере демонстрируются элементы Condition, используемые в качестве дочерних элементов для элемента MappingFragment. Если значение HireDate отлично от NULL, а значение EnrollmentDate равно NULL, то данные сопоставляются между типом SchoolModel.Instructor и столбцами PersonID и HireDate таблицы Person. Если значение HireDate отлично от NULL, а значение EnrollmentDate равно NULL, то данные сопоставляются между типом SchoolModel.Student и столбцами PersonID и Enrollment таблицы 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>
См. также
Другие ресурсы
Спецификации языка CSDL, SSDL и MSL
Моделирование и сопоставление (платформа Entity Framework)