У меня есть служба данных WCF, которая предоставляет контекст базы данных Entity Framework и EntitySet, например,
public class DatabaseService : DataService<DatabaseContext>
{
// This method is called only once to initialize service-wide policies.
public static void InitializeService(DataServiceConfiguration config)
{
// TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
// Examples:
config.SetEntitySetAccessRule("People", EntitySetRights.AllRead);
// config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V2;
}
}
Можно ли использовать этот сервис таким образом, чтобы я мог динамически создавать запросы к сервису, используя полный URI?
Т.е.. URI, который я бы использовал,
http://localhost:1353/DatabaseService.svc/People?$filter (мой фильтр здесь)
Я не хочу, чтобы мои запросы были жестко запрограммированы, просто динамически вызывались путем изменения URI на основе строк.
Уверен, что это возможно, но реализация проста или требует много кода, например, полного динамического прокси для службы WCF?
Раньше я делал подобные вещи только с простыми сервисами SOAP.
EDIT
Точнее говоря, я хочу иметь возможность делать что-то подобное,
IEnumerable<People> peopleResults = new DataServiceQuery("http://localhost:1353/DatabaseService.svc/People?$filter (my filter here)")
Где результаты заносятся прямо в мой список, и клиенту ничего не нужно знать, кроме полного URI (включая фильтры и все).