Использование EntityDataService из JavaScript Для улучшения читабельности URI, полный путь к EntityDataService не указан, для того, чтобы примеры заработали в браузере, нужно указывать полный путь, например: http://tscoredev5:88/BPMonline530Solution/0/ServiceModel/EntityDataService.svc/ 1. Запросы на выборку данных Выборка контакта по конкретному Id EntityDataService.svc/ContactCollection(guid'992a72ac-4c50-4ad4-a9080005fa39f9d0') Выборка колонок Id, BirthDate и имени Ответственного EntityDataService.svc/ContactCollection(guid'992a72ac-4c50-4ad4-a9080005fa39f9d0')?$expand=Owner&$select=Owner/Name,Id,BirthDate Выборка имени страны по городу из контакта EntityDataService.svc/ContactCollection(guid'5B62E943-155F-42CE-A41AEFA650BAA0A0')?$expand=City/Country&$select=City/Country/Name 2. Запросы на добавление данных Для того, чтобы добавить запись, нужно послать серверу POST запрос, указав значения колонок в теле запроса. В качестве ответа придет представление созданной Entity. Ниже создается контакт, ему проставляются значения полей Id, Name, BirthDate, Gender. Данные в обе стороны передаются в формате JSON. Пример запроса на добавление с использованием API Sencha Touch var serviceUrl = "http://tscoredev5:88/BPMonline540Solution/0/ServiceModel/EntityDataService.svc /"; Ext.Ajax.request({ url: serviceUrl + 'ContactCollection', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json', 'Authorization': 'Basic ' + Ext.util.base64.encode('S.Karlo:S.Karlo') }, jsonData: { Id: 'C624E607-C6B2-4A3D-9E6D-06E17FAA35C9', Name: 'John Best', BirthDate: new Date(123321123321), Gender: {__metadata: { uri: serviceUrl + 'GenderCollection(guid\'FC2483F8-65B6-DF11-831A-001D60E938C6\')' }} }, method: 'POST' }); 3. Запросы на обновление данных Для обновления данных нужно послать HTTP запрос с кастомным ODataспецифическим типом операции MERGE. если послать запрос с типом операции PUT, то все колонки Entity, не указанные в запросе будут заполнены своими значениями по-умолчанию. Пример запроса на обновление с использованием API Sencha Touch var serviceUrl = "http://tscoredev5:88/BPMonline540Solution/0/ServiceModel/EntityDataService.svc /"; Ext.Ajax.request({ url: serviceUrl + 'ContactCollection(guid\'5B62E943-155F-42CE-A41AEFA650BAA0A0\')', headers: { 'Content-Type': 'application/json', 'Authorization': 'Basic ' + Ext.util.base64.encode('S.Karlo:S.Karlo') }, jsonData: { Name: 'John', BirthDate: new Date(123321123321), Gender: {__metadata: { uri: 'GenderCollection(guid\'FC2483F8-65B6DF11-831A-001D60E938C6\')' }} }, method: 'MERGE' }); 4. Запросы на удаление данных Тут все просто: Пример запроса на удаление с использованием API Sencha Touch var serviceUrl = "http://tscoredev5:88/BPMonline540Solution/0/ServiceModel/EntityDataService.svc /"; Ext.Ajax.request({ url: this.serviceUrl + 'ContactCollection(guid\'C624E607-C6B2-4A3D-9E6D06E17FAA35C9\')', headers: { 'Authorization': 'Basic ' + Ext.util.base64.encode('S.Karlo:S.Karlo') }, method: 'DELETE' });