1

編集:ソートしました。テーブルには、アドレス指定されていない外部キーがありました。Stackoverflowでは、質問をするのにこれほど近い回答を投稿することはできません。

Windows Azureに保持されているデータベースから情報を取得するWindowsPhoneアプリケーションを作成していますが、そのためにWCF接続を使用しています。

しかし、デバッグしてサービスをローカルで呼び出すと、次のエラーが発生します。

ObjectContextインスタンスは破棄され、接続を必要とする操作には使用できなくなりました。

http://mobile.dzone.com/news/how-use-wcf-services-access-0(LoginUserセクション)から採用したコードを使用しています。そのサイトのコードは正常に機能しますが、前述のように、私はそのエラーを引き起こします。

これが私のコードです:

    public Product GetProduct(String Barcode)
    {
        string query = @"SELECT value Product FROM AzureDBEntities.Products AS Product WHERE Product.barcode = @Barcode";
        ObjectParameter parameter = new ObjectParameter("Barcode", Barcode);

        using (var context = new AzureDBEntities())
        {
            ObjectQuery<Product> results = context.CreateQuery<Product>(query, parameter);

            foreach (Product result in results)
            {
                if (result != null)
                {
                    return result;
                }
            }
        }
        return null;
    }

何かアイデア私が間違ったことはありますか?どうもありがとう。

4

2 に答える 2

1

回答のコメントで、エラーは次の原因であると述べています: WCFServiceWebRole1.dll!WCFServiceWebRole1.Product.Producer1.get()

これは、何かが Product エンティティの Producer プロパティにアクセスしようとしていることを示しています (おそらく WCF シリアル化が原因です)。コンテキストで遅延読み込みとプロキシ作成をオフにしてみてください。

using (var context = new MyEntities())
{
    context.ContextOptions.LazyLoadingEnabled = false;
    context.ContextOptions.ProxyCreationEnabled = false;
}
于 2012-04-22T18:18:48.003 に答える