Compartilhar via


Função definida pelo modelo

Uma função definida pelo modelo é uma função definida em um modelo conceitual. O corpo de uma função definida pelo modelo é expresso no Entity SQL, que permite que a função seja expressa independentemente de regras ou idiomas com suporte na fonte de dados.

Uma definição para uma função definida pelo modelo contém as seguintes informações:

  • Um nome de função. (Obrigatória)

  • O tipo do valor retornado. (Opcional)

    Observação

    Se nenhum tipo de retorno for especificado, o valor retornado será nulo.

  • Informações de parâmetro. (Opcional)

  • Uma expressão SQL de entidade que define o corpo da função.

Observe que as funções definidas pelo modelo não dão suporte a parâmetros de saída. Essa restrição está em vigor para que as funções definidas pelo modelo possam ser compostas.

Exemplo

O diagrama abaixo mostra um modelo conceitual com três tipos de entidade: Book, Publishere Author.

Captura de tela que mostra um modelo com data publicada.

O ADO.NET Entity Framework usa uma DSL (linguagem específica do domínio) chamada CSDL (linguagem de definição de esquema conceitual) para definir modelos conceituais. O CSDL a seguir define uma função no modelo conceitual que retorna os números de anos desde que uma instância de um Book (no diagrama acima) foi publicada.

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

Consulte também