您好我为Odata创建了一个代码生成工具,到目前为止,odata v4实现起来非常简单。
关于odata V3,我一直遇到元数据问题,因为我不知道到目前为止定义了哪些动作我只能看到元数据上的FunctionImport而不是动作,FunctionImport等同于OData的动作V3?如果没有,你能指出动作所在的元数据的哪个节点? 感谢
答案 0 :(得分:1)
操作可以绑定或解除绑定,可以按如下方式添加到元数据(EDM)中:
builder.Entity<entityname>.Action("actionname").Parameter<type>("paramtername").Returns<type>();
这里,builder可以是ODataBuilder或ConventionalOdataBuilder。 如果要将操作解除绑定,可以删除实体并直接将其添加到构建器。 如果您希望直接将操作添加到IEdmModel,可以将操作添加为模式元素。
编辑:操作在元数据中定义如下:
<Schema Namespace="Default" xmlns="http://schemas.microsoft.com/ado/2009/11/edm">
<EntityContainer Name="Container" m:IsDefaultEntityContainer="true">
<EntitySet Name="Movies" EntityType="ODataActionsSample.Models.Movie" />
<FunctionImport Name="SetDueDate" ReturnType="ODataActionsSample.Models.Movie" IsBindable="true" EntitySet="Movies" m:IsAlwaysBindable="true">
<Parameter Name="bindingParameter" Type="ODataActionsSample.Models.Movie" />
<Parameter Name="DueDate" Type="Edm.DateTime" Nullable="false" />
</FunctionImport>
<FunctionImport Name="CreateMovie" ReturnType="ODataActionsSample.Models.Movie" EntitySet="Movies">
<Parameter Name="Title" Type="Edm.String" FixedLength="false" Unicode="false" />
</FunctionImport>
</EntityContainer>