我有这个beloq查询给了我一个例外.现在j.job_quote.JobQuoteID是一个null的标识列,我们试图创建一个检查,如果null然后标识为0.请帮助我为什么我得到问题,我该怎么办来处理它
var Qryjob = (from j in at.jobs
where j.JobID == Convert.ToInt32(jobid)
select new {
JobID = j.JobID,
InsertedDate = j.InsertedDate,
FirstName = j.user.FirstName,
LastName = j.user.LastName,
City = j.user.City,
ServiceName = j.service.ServiceName,
ServiceTypeName = j.service_type.ServiceTypeName,
BudgetName = j.budget.BudgetName,
IsApproved = j.IsApproved,
IsAssigned = j.IsAssigned,
IsQuoted = j.IsQuoted,
job_notif_price = j.job_notif_price,
Description = j.Description,
PaymentTypeName = j.payment_type.PaymentTypeName,
DuePeriodName = j.due_period.DuePeriodName,
QuoteStatus = j.job_quote.QuoteStatus,
JobStatus = j.job_quote.JobStatus,
comments = j.job_quote.comments,
IsPartnerApply = j.job_quote.IsPartnerApply,
Applycomment = j.job_quote.ApplyComments,
JobQuoteID = j.job_quote.JobQuoteID ?? 0
}).ToList();
Run Code Online (Sandbox Code Playgroud)
那是null推算运算符,它仅适用于可为null的类型,或者左侧必须为可为null的类型(我的语言在那儿可能是错误的,但是当我说可为null时,我指的是所有Nullable<T>的和引用类型)。如果int?没有,int它将起作用。该运算符是二进制的,其工作方式是这样的;a ?? b表示如果a为null,则使用b作为值。您可以随意将其链接多次。因此,我可以int willNeverBeNull = a ?? b ?? c ?? 4假设a,b和c都是可为null的int,它将采用第一个非null值。