在我浏览OData doc之后,我仍然不理解<FunctionImport>
的含义。
但我认为上述要求也可以通过<Function>
来实现,对吗?
<FunctionImport>
和<Function>
之间有什么区别?我非常感谢任何人的帮助! 感谢
答案 0 :(得分:6)
OData中有三种类型的功能:
GET http://host/service/Products(1)/Namespace.GetCategories()
此类函数使用<function>
元素并将isBound
属性设置为true
在元数据中定义。
GET http://host/service/Products?$filter(Name eq Namespace.GetTheLongestProductName())
使用<function>
元素并将isBound
属性设置为false
GET http://host/service/GetMostExpensiveProduct()
它们的概念与程序语言中静态函数的概念有点类似,它们使用<functionimport>
元素在元数据中定义。类似的区别也适用于<action>
和<actionimport>
。
答案 1 :(得分:3)
<OData Version 4.0 Part 1: Protocol Plus Errata 02>
:
操作允许在数据模型的某些部分上执行自定义逻辑。功能是没有副作用并且可以支持进一步组合的操作,例如,具有附加的过滤操作,功能或动作。操作是允许副作用(例如数据修改)的操作,并且不能进一步组合以避免非确定性行为。操作和函数要么绑定到某个类型,要么将它们作为该类型实例的成员调用,要么不绑定,在这种情况下,它们将被称为静态操作。操作导入和函数导入允许从服务根调用未绑定的操作和函数。