Простые вещи, как только вы знаете.
Просто несколько вещей, которые нужно знать:
В настоящее время DataServiceClientGenerator (который использует EntityClassGenerator) не создает методы для операций службы.
Использование метода CreateQuery в контексте не поддерживается для сервисных операций, в настоящее время они работают, потому что для этого на стороне клиента нет проверки (вы заметите, что если вы используете CreateQuery, то «()» добавляется в конец Метод запроса, подобный этому "http://localhost/service.svc/method()?parameter=2",, вы можете использовать CreateQuery, но это не рекомендуется.
Не все сервисные операции возвращают значения, но для этого примера я покажу только пример для тех, которые это делают.
public partial class NorthwindEntities
{
public IQueryable<Order> OrdersByRegion(int regionId)
{
return this.Execute<Orders>(new Uri(string.Format("{0}OrdersByCountry?regionId={1}", this.BaseUri, regionId), UriKind.RelativeOrAbsolute));
}
}
Если вам требуется дополнительная информация, пожалуйста, не стесняйтесь задавать любые вопросы.
PS .: В вашем примере вам не нужно создавать новый контекст данных в операции службы (на стороне сервера), когда DataService уже ссылается на экземпляр, когда вызывается служба.
На самом деле вы можете переопределить создание контекста данных на стороне службы следующим образом:
protected override NorthwindEntities CreateDataSource()
{
return new NorthwindEntities();
}