Как использовать OData без Entity Framework
Я заинтересован в создании Службы данных OData wcf с помощью visual studio 2012. Однако я не хочу использовать платформу entity model framework, а вместо этого использую свой набор данных scheme less nosql для хранения и извлечения данных. Есть ли способ, который позволяет мне взять под свой контроль службы odata, не будучи приливом в конкретную структуру класса, такую как entity framework Microsoft?
1 ответ:
Вы можете использовать реализацию Microsoft OData без Entity Framework. Что вам действительно нужно, так это реализация
IQueryable
. Вот пример OData-сервиса, запрашивающего массив объектов:using System.Web.Http; using System.Web.Http.OData; using System.Web.Http.OData.Builder; using System.Web.Http.OData.Query; // GET api/values [ActionName("FromList")] public IList<Poco> GetFromList(ODataQueryOptions<Poco> queryOptions) { IQueryable<Poco> data = ( new Poco[] { new Poco() { id = 1, name = "one", type = "a" }, new Poco() { id = 2, name = "two", type = "b" }, new Poco() { id = 3, name = "three", type = "c" } }) .AsQueryable(); var t = new ODataValidationSettings() { MaxTop = 25 }; queryOptions.Validate(t); var s = new ODataQuerySettings() { PageSize = 25 }; IEnumerable<Poco> results = (IEnumerable<Poco>)queryOptions.ApplyTo(data, s); return results.ToList(); } public class Poco { public int id { get; set; } public string name { get; set; } public string type { get; set; } }