0

MySQLデータベースのデータにアクセスして表示するSilverlightアプリを構築しようとしています。Entity Frameworkを使用してMySQLデータをモデル化し、RIAサービスを使用してEF経由のデータをSilverlightで利用できるようにしようとしています。

私のSilverlightアプリはデータグリッドに正しい列を表示していますが、データが表示されません(画像への代替リンク):

データのないDataGrid:-(

DomainServiceファイル(RIAサービスに使用)を見ると、次のように表示されます。

    public IQueryable<saw_order> GetSaw_order(int intOrder)
    {
        return this.Context.saw_order
            .Where(o => o.Wo == intOrder);
    }

このステップをテストするために、LINQを変更してwhereを削除し、私が持っていたのは。だけでしたreturn this.Context.saw_order;。これを行ったとき、MySQLサーバーをチェックして、クエリが実際にMySQLサーバーに送信され、MySQLサーバーが「Writingto NET」であり、データを送り返そうとしていることを確認できました。テストマシンから送信されたクエリは有効でした。

上記の私のテストから、データはMySQLサーバーに正しく送信されているようですが、戻ったときにどこかで失われています。私の難しさは、チェーンのどこ(Entity FrameworkからRIAサービス、Silverlightクライアント)でデータが失われているのかを把握しようとしていることであり、さまざまなポイントでこれをデバッグする方法がわかりません。

たとえば、EFが問題ではないことを確認するためにEntity Frameworkをテストする他の方法は何ですか?RIAサービスをテストするにはどうすればよいですか?Silverlightクライアントでテストする必要がありますか?

私はC#の学習に苦労していて、テストするために何をすべきかわかりません。DomainServiceでリターンを「キャッチ」して、基本的なデバッグを実行するにはどうすればよいですか。

どんな助けでも大歓迎です。

4

2 に答える 2

3

コードを次のように変更します。

var qry = this.Context.saw_order.Where(o => o.Wo == intOrder);
return qry;

戻り値にブレークポイントを設定すると、イミディエイト ウィンドウでクエリを実行して、正しく実行されているかどうかを確認できます。

于 2009-10-01T14:36:08.277 に答える
1

上記のテストから、データは MySQL サーバーに正しく送信されているように見えますが、戻ってきたときにどこかで失われています。私の困難は、チェーン (Entity Framework から RIA サービス、Silverlight クライアントへ) のどこでデータが失われているのかを突き止めようとすることであり、さまざまな時点でこれをデバッグする方法がわかりません。

私は次のようなツールを使用しています: Linqpad: これは、私の linq to sql ステートメントをテストするためのものです。それは非常に簡単で使いやすいです。

Fiddler: Fiddler は、サーバーとクライアントの間で何が起こっているかを教えてくれます。

于 2009-10-01T15:21:41.587 に答える