У меня есть простая сущность: контакт
Строка DBContext:
public DbSet<Contact> Contacts { get; set; }
Контроллер API:
[HttpGet]
public IQueryable<Contact> Contacts()
{
return _contextProvider.Context.Contacts;
}
В моем поиске данных в клиенте бриза я делаю это:
var query = EntityQuery.from("Contacts")
.orderBy(orderBy.obContact)
Это прекрасно работает, и я понимаю, что параметр from «Контакты» должен соответствовать методу действия API.
В моем getByID я делаю это:
return manager.fetchEntityByKey("Contact", contactId, true)
Это прекрасно работает, а также вызывает метод API «Контакты». Но я хотел бы знать, как ветерок взял параметр «Контакты» и знал, как вызвать метод «Контакты».
Это в метаданных?
Это произошло из моей строки DBSet в моем dbcontext? (Я думаю, что это так, но хотелось бы подтверждения). Если это так, то эти два имени должны быть равны, верно?
[HttpGet]
public IQueryable<Contact>Contacts() // The HTTP action method name
public DbSet<Contact> Contacts { get; set; } // The DbSet variable
Я попробовал эти изменения:
public DbSet<Contact> DBSetContacts { get; set; }
а также
[HttpGet]
public IQueryable<Contact> Contacts()
{
return _contextProvider.Context.DBSetContacts;
}
Мой первый запрос выше, который возвращает массив, работал нормально. Моя выборка по идентификатору не удалась, он пытался найти ресурс URI «DBSetContacts».
Мой вывод состоит в том, что переменная DbSet должна иметь то же имя, что и метод URI, чтобы fetchByID работал. Это правильно?