Невозможно привести тип System.Nullable к типу System.Object.LINQ to Entities поддерживает только приведение типов примитивов и перечислений EDM - PullRequest
0 голосов
/ 07 декабря 2018

Ошибка, которую я получаю: -

Unable to cast the type `'System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]'` to type 'System.Object'. LINQ to Entities only supports casting EDM primitive or enumeration types.'

Код следующий: -

List < SeoTreatmentTableItemModel> retlist = new List < SeoTreatmentTableItemModel>();


var result1 = from s in entities.Seotreatment

             join sc in entities.Seochannellink.Where(sc => sc.Publishdate >= 
             startdate && sc.Publishdate < enddate) on s.Seotreatmentid equals 
             sc.Seotreatmentid into GSeoChannelLink

             join ph in entities.PackageHeader on s.Seotreatmentid equals 
             ph.packageheaderId
             join c in entities.IndhealClickAnalytics.Where(c => c.Createddate 
             >= startdate && c.Createddate < enddate) on ph.Name equals 
             c.Reference into GIndhealClickAnalytics

             join l in entities.Leads.Where(l => l.Requestdate >= startdate && 
             l.Requestdate < enddate)
             on s.Seotreatmentid equals l.FK_packageheaderid into GLeads

            join e in entities.Enquiry.Where(e => e.Requestdate >= startdate && 
            e.Requestdate < enddate) on s.Seotreatmentid equals 
            e.FK_packageheaderid into GEnquiry

            join t in entities.Enquiry.Where(t => t.Requestdate >= startdate && 
            t.Requestdate < enddate && t.FK_statusid == 16)
            on s.Seotreatmentid equals t.FK_packageheaderid into GTreatments

            join p in entities.Package.Where(p=> p.Valid == 1) on 
            s.Seotreatmentid equals p.FKPackageHeader
            join h in entities.Hospital on p.FKHospital equals h.IDHospital into 
            GHospitals

            where s.Valid == true
            select new SeoTreatmentTableItemModel
            {
                Seotreatmentid = s.Seotreatmentid,
                Name = s.Name,
                Departmentid = s.Departmentid,
                Isayurveda = s.Isayurveda == true ? true : false,
                Articlepublished = s.Articlepublished == true ? true : false,
                Priority = s.Priority,
                Articlepublishdate = s.Articlepublishdate,
                Googlerank = s.Googlerank,
                Qrsummary = s.Qrsummary == true ? true : false,
                Istreatment = s.Istreatment == true ? true : false,
                Articles = GSeoChannelLink.Count(),
                Hits = GIndhealClickAnalytics.Count(),
                Leads = GLeads.Count(),
                Enquiries = GEnquiry.Count(),
                Treatments = GTreatments.Count(),
                Hospitals = GHospitals.Count(),
                Cost = ph.Costusdmin + "-" + ph.Costusdmax

              };

                if (result1 == null) return null;

                retlist = result1.ToList();

Я получаю последнюю строку.Здесь - retlist = result1.ToList();

1 Ответ

0 голосов
/ 07 декабря 2018

В операторе

Seotreatmentid = s.Seotreatmentid,
                Name = s.Name,
                Departmentid = s.Departmentid,
                Isayurveda = s.Isayurveda == true ? true : false,
                Articlepublished = s.Articlepublished == true ? true : false,
                Priority = s.Priority,
                Articlepublishdate = s.Articlepublishdate,
                Googlerank = s.Googlerank,
                Qrsummary = s.Qrsummary == true ? true : false,
                Istreatment = s.Istreatment == true ? true : false,
                Articles = GSeoChannelLink.Count(),
                Hits = GIndhealClickAnalytics.Count(),
                Leads = GLeads.Count(),
                Enquiries = GEnquiry.Count(),
                Treatments = GTreatments.Count(),
                Hospitals = GHospitals.Count(),
                Cost = ph.Costusdmin + "-" + ph.Costusdmax

Проверьте, является ли какое-либо значение нулевым, если оно равно null, то с помощью тернарного оператора присвойте некоторое ненулевое значение.например, s.Seotreatmentid == ноль?0: s.Seotreatmentid .Сделайте это для всех значений.

Одно из значений имеет значение NULL, но, возможно, ему присваивается ненулевой атрибут.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...