Sziasztok!
Ebben az írásban a WCF Data Service használatáról fogok írni Visual Studio 2012-őt használva.
Amikor Visual Studio 2012-őt használva elhatároztam, hogy csinálok egy Data Service-t nagy meglepődésemre sehol nem találtam a project template-k között. Jelenleg a 2012-es verzió esetén a Data Service template még csak RTM verzióban érhető el.
A következő linkről érhető el az installer:
http://www.microsoft.com/en-us/download/details.aspx?id=35840
A célom egy OData service létrehozása volt azonban a template installálása nem oldotta meg a problémámat.
Elösször is ehhez installálnom kellet pár NuGet package-t:
- EdmLib
- ODataLib
- WCF Data Services Client
- WCF Data Services Server
- EntityFramework
Ezek után ha létrehozunk egy Data Service-t majd megadjuk a kért ObjectContext-et elméletben az alkalmazásunk működik. Sajnos csak elméletben.
A probléma az EntityFramework új verziója amely másképp kezeli az ObjectContext-et, azonban a WCF Data Service-t erre még nem készítették fel, így nem kompatibilisek.
A megoldás:
Installálni kell egy újabb NuGet package-et:
Install-Package Microsoft.OData.EntityFrameworkProvider -Pre
Majd ezek után a Data Service osztályunk nem a DataService osztályból kell, hogy öröklődjön hanem az EntityFrameworkDataService osztályból.
Ezek után már az service képes ellátni a tényleges feladatát.