Я не могу правильно настроить мои контроллеры и сопоставления. Я могу подключиться просто отлично, если я вернусь к стандартному ApiController и сопоставлению по умолчанию, но не могу подключиться с использованием типа EntityController и OData. Я получаю ошибку 406 с сервера при попытке ссылки на localhost: port/odata/persons Мой код ...Не удается правильно настроить службу Odata
(PS - все мои ссылки и привязки, похоже, правильно настроены ... нет ошибок любой вид.)
public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
//Create Entity Data Model
ODataModelBuilder modelBuilder = new ODataConventionModelBuilder();
modelBuilder.EntitySet<Person>("Persons");
//Configure Endpoint
Microsoft.Data.Edm.IEdmModel model = modelBuilder.GetEdmModel();
config.Routes.MapODataRoute("ODataRoute", "odata", model);
}
}
public class PersonsController : EntitySetController<Person, int>
{
static IList<Person> _peeps = new List<Person>()
{
new Person() {ID = 1, FirstName = "Ringo", LastName = "Starr", BirthDate = new DateTime(1940, 7, 7)},
new Person() {ID = 2, FirstName = "John", LastName = "Lennon", BirthDate = new DateTime(1940, 10, 9)},
new Person() {ID = 3, FirstName = "Paul", LastName = "McCartney", BirthDate = new DateTime(1942, 6, 18)},
new Person() {ID = 4, FirstName = "George", LastName = "Harrison", BirthDate = new DateTime(1943, 2, 25)},
};
// GET api/person
[Queryable]
public override IQueryable<Person> Get()
{
return _peeps.AsQueryable();
}
// GET api/person/5
protected override Person GetEntityByKey(int id)
{
return _peeps.FirstOrDefault(p => p.ID == id);
}
}
Корпус был проблемой. Благодаря! – unforgiven1987
Я дам вам двойные баллы, если вы скажете мне, почему, для любви ко всему святому, маршруты чувствительны к регистру. – unforgiven1987
Спецификация OData требует, чтобы имена объектов были чувствительны к регистру. Это печально. Я думаю, что есть рабочий элемент для включения нечувствительной к регистру OData маршрутизации для будущей версии Web API. –