0

Я использую службы передачи данных WCF в телефоне Windows 7, я хочу сохранить реляционные данные одним кликом, как я могу это сделать?службы данных wcf, сохраняющие реляционные данные одним щелчком мыши

это думает 2 таблицы: Категория и продукты

Я хочу, чтобы сохранить пользовательский интерфейс данных:

Из Cateogry таблицы: -
CategoryId: (автоматическое приращение)
CategoryName: а

Из таблицы продуктов: -
ProductId :-(auto increment)
КатегорияId: -? (Не знаю, как я мог бы получить)
ProductsName: АБВ

на кнопку сохранить, нажмите:

Я хочу, чтобы вставить выше данных в таблице присваиваемой, как я мог бы сделать это?

Я использую следующий код для добавления одной таблицы данных:

try 
{ 
    context = new NorthwindEntities(NorthwindUri); 
    context.AddToProducts(product); 
    context.BeginSaveChanges(new AsyncCallback((result) => 
    { 
     bool errorOccured = false; 

     // Use the Dispatcher to ensure that the 
     // asynchronous call returns in the correct thread. 
     Deployment.Current.Dispatcher.BeginInvoke(() => 
     { 
      context = result.AsyncState as NorthwindEntities; 

      try 
      { 
        // Complete the save changes operation and display the response. 
        DataServiceResponse response = context.EndSaveChanges(result); 

        foreach (ChangeOperationResponse changeResponse in response) 
        { 
         if (changeResponse.Error != null) errorOccured = true; 
        } 
        if (!errorOccured) 
        { 
         MessageBox.Show("The changes have been saved to the data service."); 
        } 
        else 
        { 
         MessageBox.Show("An error occured. One or more changes could not be saved."); 
        } 
       } 
       catch (Exception ex) 
       { 
        // Display the error from the response. 
        MessageBox.Show(string.Format("The following error occured: {0}", ex.Message)); 
       } 
     }); 
    }), context); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show(string.Format("The changes could not be saved to the data service.\n" 
     + "The following error occurred: {0}", ex.Message)); 
} 

ответ

1

В OData отношениях не представлены, как внешние ключи, вместо этого они представлены в качестве навигационных свойств. И затем вы манипулируете ими, манипулируя ссылками в клиентской библиотеке. Взгляните на эту статью: http://msdn.microsoft.com/en-us/library/dd756361(v=vs.103).aspx Вы можете вызвать несколько методов, которые изменяют данные, а затем вызвать SaveChanges, чтобы отправить их всем на сервер. Обратите внимание, что если сервер требует ссылочной целостности, и вы, например, добавляете одновременно два связанных объекта, вам может потребоваться использовать SaveChanges (Batch) (что заставляет клиента отправлять все по одному запросу и, таким образом, позволяет серверу обрабатывать его как одну транзакцию).