Entity Framework calling MAX on null on Records

前端 未结 9 1573
傲寒
傲寒 2020-12-08 09:29

When calling Max() on an IQueryable and there are zero records I get the following exception.

The cast to value type \'Int32\' failed because the materialize

9条回答
  •  生来不讨喜
    2020-12-08 09:53

    Try this:

    IEnumerable alerts = null;
    
        alerts = (from POA in SDSEntities.Context.SDS_PRODUCT_ORDER_ALERT
                  join A in SDSEntities.Context.SDS_ALERT on POA.ALERT_ID equals A.ALERT_ID
                  orderby POA.DATE_ADDED descending
                  select new AlertsResultset
                  {
                      ID = POA.PRODUCT_ORDER_ALERT_ID == null ? 0:POA.PRODUCT_ORDER_ALERT_ID ,
                      ITEM_ID = POA.ORDER_ID.HasValue ? POA.ORDER_ID.Value : POA.PRODUCT_ID.Value,
                      Date = POA.DATE_ADDED.Value,
                      orderType = SDSEntities.Context.SDS_ORDER.Where(o => o.ORDER_ID == POA.ORDER_ID.Value).FirstOrDefault().ORDER_TYPE,
                      TransactionNumber = POA.PRODUCT_ID.HasValue ? (SDSEntities.Context.SDS_PRODUCT.Where(p => p.PRODUCT_ID == POA.PRODUCT_ID.Value).FirstOrDefault().TRANSACTION_NUMBER) : (SDSEntities.Context.SDS_ORDER.Where(o => o.ORDER_ID == POA.ORDER_ID.Value).FirstOrDefault().TRANSACTION_NUMBER),
                      Publisher = POA.PRODUCT_ID.HasValue ?
                      (
                      SDSEntities.Context.SDS_PRODUCT.Where(p => p.PRODUCT_ID == POA.PRODUCT_ID.Value).FirstOrDefault().PRODUCT_TYPE_NUMBER == "ISSUE" ? (from prod in SDSEntities.Context.SDS_PRODUCT
                                                                                                                                                          join ji in SDSEntities.Context.SDS_JOURNAL_ISSUE on prod.PRODUCT_ID equals ji.PRODUCT_ID
                                                                                                                                                          join j in SDSEntities.Context.SDS_JOURNAL on ji.JOURNAL_ID equals j.JOURNAL_ID
                                                                                                                                                          where prod.PRODUCT_ID == POA.PRODUCT_ID
                                                                                                                                                          select new { j.PUBLISHER_NAME }).FirstOrDefault().PUBLISHER_NAME : (from prod in SDSEntities.Context.SDS_PRODUCT
                                                                                                                                                                                                                              join bi in SDSEntities.Context.SDS_BOOK_INSTANCE on prod.PRODUCT_ID equals bi.PRODUCT_ID
                                                                                                                                                                                                                              join b in SDSEntities.Context.SDS_BOOK on bi.BOOK_ID equals b.BOOK_ID
                                                                                                                                                                                                                              where prod.PRODUCT_ID == POA.PRODUCT_ID
                                                                                                                                                                                                                              select new { b.PUBLISHER_NAME }).FirstOrDefault().PUBLISHER_NAME
                      )
                      : (SDSEntities.Context.SDS_ORDER.Where(o => o.ORDER_ID == POA.ORDER_ID.Value).FirstOrDefault().PUBLISHER_NAME),
                      Alert = A.ALERT_NAME,
                      AlertType = A.ALERT_TYPE,
                      IsFlagged = POA.IS_FLAGGED.Value,
                      Status = POA.ALERT_STATUS
                  });
    

提交回复
热议问题