Поделиться через


Элемент DefiningExpression (CSDL)

Элемент DefiningExpression в языке CSDL содержит выражение Entity SQL , которое определяет функцию в концептуальной модели. Дополнительные сведения см. в разделах Элемент Function (язык CSDL) и Язык Entity SQL.

Dd489503.note(ru-ru,VS.100).gifПримечание
В целях проверки в элемент DefiningExpression можно включать произвольное содержимое.Но среда Entity Framework вызывает исключение времени выполнения, если элемент DefiningExpression не содержит допустимый код Entity SQL .

Применимые атрибуты

К элементу DefiningExpression может быть применено любое количество атрибутов annotation (настраиваемых атрибутов XML). Однако настраиваемые атрибуты не могут принадлежать к любому пространству имен XML, зарезервированному для CSDL. Полные имена любых двух настраиваемых атрибутов не могут совпадать.

Пример

В следующем примере элемент DefiningExpression используется для определения функции, возвращающей сведения о количестве лет, истекших с момента публикации книги. Содержимое элемента DefiningExpression записывается в коде Entity SQL .

<Function Name="GetYearsInPrint" ReturnType="Edm.Int32" >
      <Parameter Name="book" Type="BooksModel.Book" />
      <DefiningExpression>
        Year(CurrentDateTime()) - Year(cast(book.PublishedDate as DateTime))
      </DefiningExpression>
    </Function>

См. также

Основные понятия

Общие сведения о платформе Entity Framework
Спецификация языка CSDL
Элемент FunctionImport (язык CSDL)

Другие ресурсы

Спецификации языка CSDL, SSDL и MSL
ADO.NET Entity Data Model Tools