Click here to Skip to main content
14,599,577 members
Rate this:
Please Sign up or sign in to vote.
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:-
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
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
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.
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
Rate this:
Please Sign up or sign in to vote.

Solution 2

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

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

[OperationContract]
List <dataaccountdatamodel> GetDetailsUsingPatientaccountNumber(string patientAccountNumber);
   
Comments
chowdary2005 20-Aug-12 1:49am
   
Thanks,

Resolved the issue. Thanks fo rthe support.

chowdary.
Rate this:
Please Sign up or sign in to vote.

Solution 3

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

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




CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100