Click here to Skip to main content
15,305,039 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
Problem in Silverlight project in ASP.NET
Hi,
I want to make a simple Silverlight application in ASP.NET and LINQ. I have two talbe
Student :[student_id,student_name,address, phone,country_id]
Country :[country_id,country_name]

Thiw tow table is join by country_id.
I have inluced a LINQ Data Class in my project.
I have included a Silverlight-Enabled-WCF-Serfice. In this service I have made tow method and there code is like
C#
[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();
}


Then I add a service reference of that WCF service. Then I include a DataGrid in my silverlight .xml file.
Now I want to show all the students in that DataGrid. For this I have written the following code

C#
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;
        }


Then I build the whole project and found no error. If I run the project then I found an error and it is--

An exception occurred during the operation, making the result invalid. Check InnerException for exception details.
at System.ComponentModel.AsyncCompletedEventArgs.RaiseExceptionIfNecessary()
at Silverlight.WCFServiceReference.LoadStudentCompletedEventArgs.get_Result()
at Silverlight.Home.oWCFServiceClient_LoadStudentCompleted(Object sender, LoadStudentCompletedEventArgse)
at Silverlight.WCFServiceReference.WCFServiceClient.OnLoadStudentCompleted(Object state)


If I remove county table form the LINQ class and remove LoadCountry() method form the service and call LoadStudent() method form silverlight form then it runs accurately and all the data is displayed in my DataGrid.
If I remove student table form the LINQ class and remove LoadStudent() method form the service then LoadCountry() method runs accurately. Both methods are not work if the present same time in LINQ WCF Service .

NB: Both tables has data. If I run a SQL join query then it returns data


I can’t understand what the problem is.

Is there anyone to help me regarding this problem?

Thanks in advance.
Rashed
Posted
Updated 9-Oct-12 22:29pm
v2

plz check Collection Countries is not null

[OperationContract]
     public List<Country> LoadCountry()
      {
       if(oLINQDataClassesDataContext.Countries!=null &&             oLINQDataClassesDataContext.Countries.Rows.Count >0)
           {
            var result = from coun in oLINQDataClassesDataContext.Countries
                         select coun;
            return result.ToList();
            }
        }
   
Comments
[no name] 10-Oct-12 3:39am
   
Country table is not empty.
vasim sajad 10-Oct-12 3:59am
   
check whether it contains row
[no name] 10-Oct-12 4:16am
   
If i run this quary in a normal ASP.NET project then it works nicely. But it does not works in Silverlight with WCF service project.
NB: if i delete public List<country> LoadCountry() method then i also found error. for public IList<student> LoadStudent() method. But both tables has values. Only if i remove Country table form the LINQ class then it runes ok. Same alternative is applicable for both table.
go to properties of dbml file and change the Serialization mode to unidirectional
   

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900