模型定义函数
模型定义函数是在概念模型中定义的函数。 模型定义函数的主体用实体 SQL 表达,这可以独立于数据源中支持的规则或语言来表达函数。
模型定义函数的定义包含以下信息:
函数名称。 (必需)
返回值的类型。 (可选)
备注
如果未指定返回类型,则返回值为 void。
参数信息。 (可选)
定义函数主体的实体 SQL 表达式。
请注意,模型定义函数不支持输出参数。 这一限制可以保证无法对模型定义函数进行编写。
示例
下图显示了一个具有三个实体类型的概念模型:Book
、Publisher
和 Author
。
ADO.NET 实体框架使用一种称为概念架构定义语言 (CSDL) 的域特定语言 (DSL) 来定义概念模型。 下面的 CSDL 在概念模型中定义了一个函数,它返回自某个 Book
实例(如上图所示)出版以来的年数。
<Function Name="GetYearsInPrint" ReturnType="Edm.Int32" >
<Parameter Name="book" Type="BooksModel.Book" />
<DefiningExpression>
Year(CurrentDateTime()) - Year(cast(book.PublishedDate as DateTime))
</DefiningExpression>
</Function>