1

ASP.NET と LINQ で単純な Silverlight アプリケーションを作成したいと考えています。私は2つのタルベを持っています

生徒 :[student_id,student_name,address, phone,country_id] 国 :[country_id,country_name]

このトウ テーブルは、country_id によって結合されます。プロジェクトに LINQ データ クラスを導入しました。Silverlight-Enabled-WCF-Service を含めました。このサービスでは tow メソッドを作成しましたが、コードは次のようになります

[OperationContract]
        public List<Country> LoadCountry()
        {
            var result = from coun in oLINQDataClassesDataContext.Countries
                         select coun;
            return result.ToList();
        }

        [OperationContract]
        public IList<Student> LoadStudent()
        {

            var result = from std in oLINQDataClassesDataContext.Students
                         select std;        
            return result.ToList();
        }

次に、その WCF サービスのサービス参照を追加します。次に、Silverlight .xml ファイルに DataGrid を含めます。

ここで、その DataGrid 内のすべての学生を表示したいと思います。このために、私は次のコードを書きました

WCFServiceReference.WCFServiceClient oWCFServiceClient = new WCFServiceReference.WCFServiceClient();

    public Home()
    {
        InitializeComponent();
        oWCFServiceClient.LoadStudentCompleted += new EventHandler<WCFServiceReference.LoadStudentCompletedEventArgs>(oWCFServiceClient_LoadStudentCompleted);
        oWCFServiceClient.LoadStudentAsync();

    }

    void oWCFServiceClient_LoadStudentCompleted(object sender, WCFServiceReference.LoadStudentCompletedEventArgs e)
    {
        dataGrid1.ItemsSource = e.Result;
    }

次に、プロジェクト全体をビルドしましたが、エラーは見つかりませんでした。プロジェクトを実行すると、エラーが見つかりました。それは--

操作中に例外が発生したため、結果が無効になりました。例外の詳細については、InnerException を確認してください。System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary() で Silverlight.WCFServiceReference.LoadStudentCompletedEventArgs.get_Result() で Silverlight.Home.oWCFServiceClient_LoadStudentCompleted (オブジェクト送信者、LoadStudentCompletedEventArgse) で Silverlight.WCFServiceReference.WCFServiceClient.OnLoadStudentCompleted(オブジェクト状態)

LINQ クラスから郡テーブルを削除し、サービスから LoadCountry() メソッドを削除し、Silverlight フォームから LoadStudent() メソッドを呼び出すと、正確に実行され、すべてのデータが DataGrid に表示されます。

LINQ クラスから学生テーブルを削除し、サービスから LoadStudent() メソッドを削除すると、LoadCountry() メソッドが正確に実行されます。LINQ & WCF Service で現在同時に実行されている場合、両方の方法は機能しません。

注意: 両方のテーブルにデータがあります。SQL 結合クエリを実行すると、データが返されます

何が問題なのか理解できません。

この問題に関して私を助けてくれる人はいますか?

前もって感謝します。発疹

4

1 に答える 1

0

dbml ファイルのプロパティに移動し、シリアライゼーション モードを単方向に変更します。

于 2012-10-22T12:34:20.863 に答える