Пользовательские классы логики и прокси в службах данных ADO.NET - PullRequest
3 голосов
/ 30 апреля 2010

Я только что прочитал « Внедрение пользовательской логики в ADO.NET Data Services », и мой следующий вопрос: как заставить ваш метод [WebGet] отображаться в прокси-классах на стороне клиента? ? Конечно, я могу вызывать это напрямую (RESTful), скажем, с WebClient, но я думал, что сильные функции печати в ADO.NET Data Services «скрывают» это от меня автоматически.

Итак, у нас есть:

public class MyService : DataService<MyDataSource>
{
    // This method is called only once to initialize service-wide policies.
    public static void InitializeService(IDataServiceConfiguration config)
    {
        config.SetEntitySetAccessRule("Customers", EntitySetRights.AllRead);
        config.SetServiceOperationAccessRule("CustomersInCity", ServiceOperationRights.All);
    }

    [WebGet]
    public IQueryable<MyDataSource.Customers> CustomersInCity(string city)
    {
        return from c in this.CurrentDataSource.Customers
               where c.City == city
               select c;
    } 

}

Как я могу заставить CustomersInCity() появляться в моих определениях класса на стороне клиента?

1 Ответ

1 голос
/ 07 ноября 2011

Когда вы увидите ваши Одаты в браузере, вы увидите ссылку ... например http://localhost:1234/odataService.svc

просто напишите название вашего метода после ссылки для вашего метода это будет примерно так ...

http://localhost:1234/odataService.svc/CustomersInCity?city="London"

...