Skip to content

Model Bound Attributes

Maxim edited this page Apr 1, 2019 · 6 revisions

About model bound attributes
Support Page, Count, OrderBy, Filter, Select, Expand attributes.

Model Bound attribute APIs

var optionsBuilder = new DbContextOptionsBuilder<Model.OrderContext>();
optionsBuilder = optionsBuilder.UseSqlServer(@"Server=.\sqlexpress;Initial Catalog=OdataToEntity;Trusted_Connection=Yes;");

//Create adapter data access, where OrderContext your DbContext
//For model bound query cache MUST BY disabled
var dataAdapter = new OeEfCoreDataAdapter<Model.OrderContext>(optionsBuilder.Options, new Cache.OeQueryCache(false));
//Build OData Edm Model
EdmModel edmModel = dataAdapter.BuildEdmModel();
//Create model bound provider from attributes
var modelBoundAttributeBuilder = new Query.Builder.OeModelBoundAttributeBuilder(edmModel);
Query.OeModelBoundProvider modelBoundProvider = modelBoundAttributeBuilder.BuildProvider();
//Create query parser
var parser = new OeParser(new Uri("http://dummy"), edmModel, modelBoundProvider);
//Query
var uri = new Uri("http://dummy/Orders");
//The result of the query
var response = new MemoryStream();
//Execute query
await parser.ExecuteGetAsync(uri, OeRequestHeaders.JsonDefault, response, CancellationToken.None);

Model Bound Fluent APIs

Clone this wiki locally