Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
public override IQueryable<ProductDTO> Get()). Я согласен, что много ORM не поддерживают Link провайдер и его очень сложно реализовать. Рекомендую почитать блог о переводе OData запросов в HQL. есть еще открытый проект OData парсер для NHibernate, но я его не тестировал.GET /odata/Products?%24inlinecount=allpages мы получим такой результат:{
"odata.metadata":"http://localhost:52864/odata/$metadata#Products","odata.count":"4","value":[
{
"ProductID":1,"Name":"Product1","Price":"1.00","CategoryID":1,"CategoryName":"Categoty1"
},{
"ProductID":2,"Name":"Product2","Price":"2.00","CategoryID":1,"CategoryName":"Categoty1"
},{
"ProductID":3,"Name":"Product3","Price":"2.00","CategoryID":2,"CategoryName":"Category2"
},{
"ProductID":4,"Name":"dfgdf","Price":"0.00","CategoryID":1,"CategoryName":"Categoty1"
}
]
}
"odata.count":"4" — это и есть total.entity/$links/entity;odata/Products(1)/RateProduct;/odata/$metadata#Products/@Element даст ответ:<edmx:Edmx xmlns:edmx="http://schemas.microsoft.com/ado/2007/06/edmx" Version="1.0">
<edmx:DataServices xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" m:DataServiceVersion="3.0" m:MaxDataServiceVersion="3.0">
<Schema xmlns="http://schemas.microsoft.com/ado/2009/11/edm" Namespace="ODataSample.Models">
<EntityType Name="ProductDTO">
<Key>
<PropertyRef Name="ProductID"/>
</Key>
<Property Name="ProductID" Type="Edm.Int32" Nullable="false"/>
<Property Name="Name" Type="Edm.String" Nullable="false"/>
<Property Name="Price" Type="Edm.Decimal" Nullable="false"/>
<Property Name="CategoryID" Type="Edm.Int32" Nullable="false"/>
<Property Name="CategoryName" Type="Edm.String"/>
</EntityType>
<EntityType Name="Category">
<Key>
<PropertyRef Name="ID"/>
</Key>
<Property Name="ID" Type="Edm.Int32" Nullable="false"/>
<Property Name="Name" Type="Edm.String" Nullable="false"/>
</EntityType>
</Schema>
<Schema xmlns="http://schemas.microsoft.com/ado/2009/11/edm" Namespace="Default">
<EntityContainer Name="Container" m:IsDefaultEntityContainer="true">
<EntitySet Name="Products" EntityType="ODataSample.Models.ProductDTO"/>
<EntitySet Name="Categories" EntityType="ODataSample.Models.Category"/>
</EntityContainer>
</Schema>
</edmx:DataServices>
</edmx:Edmx>
OData контроллеры в .NET MVC