0

これが初心者の質問である場合は申し訳ありませんが、C# プログラミングは初めてです。

しかし、私は WCF データ サービスを作成しようとしていますが、データを読み取り、odata フィードを問題なく吐き出します。サービス タイプとデータ モデルを作成する VS にサービス参照を追加しましたが、SaveChanges()メソッドが不足しているようです (一連のチュートリアルで呼び出されていることがわかります)。

これによりIUpdatable、ウサギの穴を下る現在の停留所にたどり着きました。「あなたのサービスは更新をサポートしていないため、IUpdatable. このインターフェイスを実装するにはどうすればよいですか? このインターフェースを実装することは何を意味するのでしょうか?

また、これは Windows Phone アプリ用です。

4

3 に答える 3

1

問題がクライアントの SaveChanges メソッドの欠落ではなく (上記のマークの回答で解決するはずです)、読み取り/書き込みアクセスをサポートするはずのサービスを作成している場合は、(サーバーに) IUpdatable インターフェイスを実装する必要があるかもしれません。 .

サービスが EF プロバイダーを使用している場合、EF プロバイダーはすぐに使用できる IUpdatable を実装しているため、これは既に機能しているはずです。

サービスでリフレクション プロバイダーを使用する場合は、コンテキストに IUpdatable を実装する必要があります。ここにいくつかの説明があります: http://msdn.microsoft.com/en-us/library/dd723653.aspx

カスタム プロバイダーを使用している場合は、IUpdatable も実装する必要があり、そのサンプルもありますが、このルートを使用しているとは思いません :-)

于 2012-08-13T14:19:07.120 に答える
1

Windows Phone 7 は Silverlight ベースであるため、非同期である必要があるためSaveChanges、コンテキストにはメソッドはなく、メソッドBeginSaveChangesEndSaveChangesメソッドのペアがあります。次のように呼び出すことができます。

private void SaveChanges_Click(object sender, RoutedEventArgs e)
{
    // Start the saving changes operation.
    svcContext.BeginSaveChanges(SaveChangesOptions.Batch, 
        OnChangesSaved, svcContext);
}

private void OnChangesSaved(IAsyncResult result)
{
    // Use the Dispatcher to ensure that the 
    // asynchronous call returns in the correct thread.
    Dispatcher.BeginInvoke(() =>
        {
            svcContext = result.AsyncState as NorthwindEntities;

            try
            {
                // Complete the save changes operation and display the response.
                WriteOperationResponse(svcContext.EndSaveChanges(result));
            }
            catch (DataServiceRequestException ex)
            {
                // Display the error from the response.
                WriteOperationResponse(ex.Response);
            }
            catch (InvalidOperationException ex)
            {
                messageTextBlock.Text = ex.Message;
            }
            finally
            {
                // Set the order in the grid.
                ordersGrid.SelectedItem = currentOrder;
            }
        }
    );
}

そのサンプルはhttp://msdn.microsoft.com/en-us/library/gg521146(VS.92).aspxからのものです。

于 2012-08-12T23:43:28.017 に答える
0

IUpdatable については、デザイナーがここで説明しています: WCF Data Service ブログ: IUpdatable & ADO.Net DataServices Framework

于 2013-04-17T02:03:58.770 に答える