função definida pelo modelo
Uma função definida por modelo é uma função que é definida em um modelo conceitual. O corpo de uma função definida por modelo é expresso em Entity SQL, o que permite que a função seja expressa independentemente de regras ou linguagens suportadas na fonte de dados.
Uma definição para uma função definida por modelo contém as seguintes informações:
Um nome de função. (Obrigatório)
O tipo do valor de retorno. (Opcional)
Nota
Se nenhum tipo de retorno for especificado, o valor de retorno será nulo.
Informações sobre parâmetros. (Opcional)
Uma expressão Entity SQL que define o corpo da função.
Observe que as funções definidas pelo modelo não suportam 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
, Publisher
, e Author
.
O ADO.NET Entity Framework usa uma linguagem específica de domínio (DSL) chamada linguagem de definição de esquema conceitual (CSDL) para definir modelos conceituais. A CSDL a seguir define uma função no modelo conceitual que retorna os números de anos desde que uma instância de a 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>