У меня возникают проблемы с определением функции для odata4. По умолчанию get будет работать, но я хочу, чтобы был задан пользовательский параметр, поэтому можно определить набор клиентов, другие таблицы задействованы, поэтому LINQ требуется, я также возвращаю DTO вместо информации таблицы по умолчанию (EF). Ниже приведен код. Я получаю сообщение «Invalid EntitySetPath detected.» BindingParameter/Client 'не является допустимым путем установки объекта для процедуры «Default.GetClients». Что я здесь делаю неправильно?Web API 2 Odata 4 Параметр Issue
WebApiConfig
public static void Register(HttpConfiguration config)
{
ODataModelBuilder builder = new ODataConventionModelBuilder();
builder.EntitySet<client>("Client").EntityType.HasKey(p => p.int_id);
var function = builder.Function("GetClients");
function.Parameter<string>("user");
function.ReturnsCollectionFromEntitySet<client>("Client");
builder.EntitySet<ClientDTO>("ClientDTO");
config.MapODataServiceRoute(
routeName: "ODataRoute",
routePrefix: null,
model: builder.GetEdmModel());
WebApp.Controller
[ODataRoute("GetClients(user={user})")]
[EnableQuery(PageSize=25)]
public IQueryable<ClientDTO> GetClients([FromODataUri] string user)
{
var clients = (from c in db.clients
join ...