C# 在执行linq查询时,它会抛出casting error system.int32

C# 在执行linq查询时,它会抛出casting error system.int32,c#,.net,linq,model-view-controller,C#,.net,Linq,Model View Controller,我也面临着同样的问题,很多时候在放置Tolist方法时会出现这个问题,因为在放置Tolist()方法之前,查询生成的输出类型是 可液化的 但这不是你问题的解决办法 问题是,这可能是错误的 1将可为空的整型变量分配给不可为空的整型值,或2将可为空的整型值与联接中的不可为空的值进行比较,反之亦然 第二种情况的可能性更大,因为在赋值时,c#编译器会给出错误 检查比较变量的类型,然后让我进行一些跟进 这是一个语法错误-您在下一行注释了join,但使用了equals,您好!欢迎来到Stackoverflo

我也面临着同样的问题,很多时候在放置Tolist方法时会出现这个问题,因为在放置Tolist()方法之前,查询生成的输出类型是
可液化的
但这不是你问题的解决办法

问题是,这可能是错误的 1将可为空的整型变量分配给不可为空的整型值,或2将可为空的整型值与联接中的不可为空的值进行比较,反之亦然

第二种情况的可能性更大,因为在赋值时,c#编译器会给出错误
检查比较变量的类型,然后让我进行一些跟进

这是一个语法错误-您在下一行注释了
join
,但使用了
equals
,您好!欢迎来到Stackoverflow。这回答了你的问题吗?没有人知道如果是语法错误,它不会在其他情况下运行,它只是在将其转换为.tolist()时抛出错误。请帮帮我,我太瞎了,看不见。您在哪里将任何内容强制转换或转换为
int32
?实际上,为了能够真正帮助您,我们需要
AppointmentDataTableResult
的声明以及所有涉及的表格,以查看所有变量及其
类型。否则,这将仍然是一个猜测游戏。。。。。这可能需要foreveri在我的查询中并没有做这两件事,有些是可以为null的,有些不是,但我并没有用non-nullable检查nullable,你们在第9行比较的声明的“offloc”变量在哪里
var Appointment = (from app in _context.Appointments
                                   join pt in _context.Patients on app.PatientID equals pt.ID into 
                                   patients
                                   from pt in patients.DefaultIfEmpty()
                                   join doc in _context.Doctors on app.DoctorID equals doc.ID into 
                                   doctors
                                   from doc in doctors.DefaultIfEmpty()
                                       //join offloc in _context.OfficeLocations on app.DoctorID 
                                    equals offloc.DoctorID into officlocation
                                       //from offloc in officlocation.DefaultIfEmpty()
                                   join docavail in _context.DoctorsAvailabilities on 
                                   app.AvailabilityID equals docavail.ID into availability
                                   from docavail in availability.DefaultIfEmpty()
                                   where ((app.CreatedByReferral == ReferralSpecialistID || 
                                   app.CompanyID == CompanyID || app.UserGroupID == CompanyID) && 
                                   app.OtherPatientID == null && pt.Status == StatusConstant.Active 
                                   && app.Status != AppointmentRescheduledID && 
                                   app.IsCloseAppointment != true)
                                   select new AppointmentDataTableResult
                                   {

                                       appointmentID = app.ID,
                                       PatientID = pt.ID,
                                       patientname = (pt.NamePrefix ?? "") + " " + pt.FirstName + " " + pt.LastName + " " + (pt.NameSuffix ?? ""),
                                       ParentPatientID = 0,
                                       dateofbirth = pt.DateOfBirth,
                                       patientType = _context.CategoryDetails.Where(x => x.ItemID == app.PatientTypeID).Select(x => x.MasterData).FirstOrDefault(),
                                       phone = pt.Phone,
                                       Date = docavail.Date,
                                       Time = docavail.Time,
                                       statustext = _context.CategoryDetails.Where(x => x.ItemID == app.Status).Select(x => x.MasterData).FirstOrDefault(),
                                       doctorname = (doc.NamePrefix ?? "") + " " + doc.FirstName + " " + doc.LastName + " " + (doc.NameSuffix ?? ""),
                                       DoctorID = doc.ID,
                                       checkin = app.CheckIn,
                                       checkout = app.CheckOut,
                                       checkintime = app.CheckInTime,
                                       checkouttime = app.CheckOutTime,
                                       withoutslot = app.WithoutSlot,
                                       locatioid = app.LocationID ?? 0,
                                       AppointmentSource = app.AppointmentSource ?? 0,
                                       Status = app.Status ?? 0,
                                       IsPastAppointment = app.IsPastAppointment,
                                       casestatusID = app.CaseStatusID ?? 0,
                                       caseTypeID = app.CaseTypeID ?? 0,
                                       ReferralAttorneyID = app.ReferralAttorneyID ?? 0,
                                       ReferralProviderID = app.ReferralProviderID ?? 0,
                                       patientTypeID = app.PatientTypeID ?? 0,
                                       InsuranceID = app.InsuranceID ?? 0,
                                       PendingAppointmentDate = app.PreferredAppointmentDateTime,
                                       // AppointmentDate = docavail.Date.Value.Month + "/" + docavail.Date.Value.Day + "/" + docavail.Date.Value.Year + " " + docavail.Time.Value.Hours + ":" + docavail.Time.Value.Minutes,
                                       ReportCount = _context.DoctorReportStatus.Where(x => x.StatusID == StatusConstant.Active && x.AppointmentID == app.ID).Count(),
                                       RerecordUploadedYN = app.RerecordUploadedYN,
                                       IsAppointmentPending = app.IsAppointmentPending,
                                       IsPendingBillingRecoardYN = app.IsPendingBillingRecoardYN,
                                       strDate = docavail.Date.Value.Month + "/" + docavail.Date.Value.Day + "/" + docavail.Date.Value.Year,
                                       DateChekin = default(DateTime),
                                       totaldays = 0
                                   });