Click here to Skip to main content
15,891,248 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello All,

I am writing a WCF service that fetches data from SQL server database and shows it in front end using Linq to Entities.

Following is Class Interface:-
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ServiceModel;

namespace PIAService
{
    [ServiceContract]
    public interface IPIAService
    {
        [OperationContract]
        IQueryable<DataAccountDataModel> GetDetailsUsingPatientaccountNumber(string patientAccountNumber);
    }
}

Following is DataClass
C#
public class DataAccountDataModel
  {
      [DataMember]
      public String PatientAccountNumber { get; set; }
      [DataMember]
      public String PatientName { get; set; }
      [DataMember]
      public String BARStatus_ORPH { get; set; }
      [DataMember]
      public String AdmitDate { get; set; }
}

Following is Interface Function Implementtion
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Runtime.Serialization;

using System.Data.Entity;
using StoreDB;

namespace PIAService
{
    [DataContract]
    public class PIAService : IPIAService 
    {

        public IQueryable <dataaccountdatamodel> GetDetailsUsingPatientaccountNumber(string patientAccountNumber)
        {
            PIADataModel piaData = new PIADataModel();
            
            IQueryable <dataaccountdatamodel> DAdetails = (from p in piaData.DataAccounts
                                                           where p.PatientAccountNumber == patientAccountNumber &&
                                                           p.Duplicate == false 
                                                           select p);

            return DAdetails;
         }
        
    }

By compiling this program i am getting the following error. Kindly help.
XML
Error	1	Cannot implicitly convert type 'System.Linq.IQueryable<storedb.dataaccount>' to 'System.Linq.IQueryable<piaservice.dataaccountdatamodel>'. An explicit conversion exists (are you missing a cast?)

Thanks in Advance.

Chowdary.
Posted
Updated 19-Aug-12 18:47pm
v2

If you are using entity framework means you no need to write DTO again, instead you can use your entity class.

try this

in your PIAService class

C#
List <dataaccountdatamodel> DAdetails = (from p in piaData.DataAccounts
                                                           where p.PatientAccountNumber == patientAccountNumber &&
                                                           p.Duplicate == false
                                                           select new dataaccountdatamodel{ AAA = p.aaa,BBB=p.bbb}.tolist<dataaccountdatamodel>());</dataaccountdatamodel>


add this in your interface IPIAService

C#
[OperationContract]
List <dataaccountdatamodel> GetDetailsUsingPatientaccountNumber(string patientAccountNumber);
 
Share this answer
 
Comments
Charles Shob 20-Aug-12 1:49am    
Thanks,

Resolved the issue. Thanks fo rthe support.

chowdary.
you missing casting, try following
C#
IQueryable<dataaccountdatamodel> DAdetails = (from p in piaData.DataAccounts
                                                           where p.PatientAccountNumber == patientAccountNumber && p.Duplicate == false select p).ToList();
 
Share this answer
 
v2

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