2013-09-03 3 views
1

У меня есть письменный набор данных для моего приложения Windows Phone, и я пытаюсь сохранить изменения в этом сервисе данных. Для этого я называю BeginSaveChanges:Как отладить WCF dataservice

Context.AddToMeasurements(temp); 
    Context.BeginSaveChanges(SaveChangesOptions.Batch, SaveChangesComplete, Context); 

Обратный вызов этой функции возвращает ошибку при EndSaveChanges вызове.

private void SaveChangesComplete(IAsyncResult result) 
{ 
    // use a dispatcher to make sure the async void 
    // returns on the right tread. 
    Deployment.Current.Dispatcher.BeginInvoke(() => 
    { 

     DataServiceResponse WriteOperationResponse = null; 

     Context = result.AsyncState as MeasurementEntities; 

     try 
     { 
      WriteOperationResponse = Context.EndSaveChanges(result); 
      Debug.WriteLine("Batch State:"); 
      Debug.WriteLine(WriteOperationResponse.BatchStatusCode); 
     } 
     catch (DataServiceRequestException ex) 
     { 

      Debug.WriteLine(ex.Message); 
     } 
     catch (InvalidOperationException ex) 
     { 
      Debug.WriteLine(ex.Message); 
     } 

    });   
} 

Ошибка в endsavechanges возвращается:

An exception of type 'System.Data.Services.Client.DataServiceClientException' occurred in Microsoft.Data.Services.Client.WP80.DLL and wasn't handled before a managed/native boundary 
An exception of type 'System.Data.Services.Client.DataServiceRequestException' occurred in Microsoft.Data.Services.Client.WP80.DLL and wasn't handled before a managed/native boundary 
A first chance exception of type 'System.Data.Services.Client.DataServiceRequestException' occurred in Microsoft.Data.Services.Client.WP80.DLL 
An exception of type 'System.Data.Services.Client.DataServiceRequestException' occurred in Microsoft.Data.Services.Client.WP80.DLL and wasn't handled before a managed/native boundary 
An error occurred while processing this request. 

Я хотел бы видеть некоторые более подробную информацию об этих ошибках, или если кто-то знает, что они означают, что также будет appreiciated, но как я могу выполнить (подробнее о dataservice) в визуальной студии?

пс, я Allready добавил:

config.UseVerboseErrors = true; 

и

[ServiceBehavior(IncludeExceptionDetailInFaults = true)] 

к моему DataService.

пожалуйста, помогите :)

редактировать:


Когда я удалить конструкцию Try и просто выполнить метод EndSaveChanges. Я могу прочитать innerExeptions, который есть:

Невозможно вставить явное значение для столбца идентификации в таблице «Измерение», если для параметра IDENTITY_INSERT установлено значение OFF.

любая идея, что это значит?

+0

Вы можете приложить свой отладчик к w3wp.exe для служб wcf debuggind. – Ehsan

+0

Есть ли руководство в том, как это сделать? oh btw, dataservice не работает на том же рабочем столе, что и визуальная студия. –

+0

то как вы можете его отладить? – Ehsan

ответ

1

Невозможно вставить явное значение для столбца идентификации в таблице «Измерение», если для параметра IDENTITY_INSERT установлено значение OFF.

это означает, что вы не передадите какое-либо значение в колонку Measurement и это обязательное поле в базе данных. Вам нужно передать значение.

+0

Но это именно то, что я хочу. Я хочу вставить измерение без указания первичного ключа. У меня есть база данных для увеличения и семени. Так что значение measurmentid не указано, оно автоматически вставлено в нижней части таблицы. Так есть ли способ достичь этого? –

+0

Оке, я думаю, я решил это. Я установил, что моя база данных будет автоинкрементной и первичной. Я не сделал это изменение в службе данных wcf. –

Смежные вопросы