An expression tree may not contain a call or invocation that uses optional arguments?

Hmmm… I’m not sure I duplicated your specifics exactly but tried this quick test that seems OK.
I pull UserFile.Email address by an OrderHed UD field and then populated the callContextBpmData.ShortChar01 to use in the “To” field of the email.

image

Erp.Tables.UserFile UserFile;

 foreach(var ttOrderHed_xRow in ttOrderHed)
 {
  var ttOrderHedRow=ttOrderHed_xRow;
  if(ttOrderHed_xRow != null)
  {
   UserFile = (from UserFile_Row in Db.UserFile 
   where UserFile_Row.CurComp == ttOrderHedRow.Company 
   // && UserFile_Row.DcdUserID == ttOrderHedRow.EntryPerson
      && UserFile_Row.DcdUserID == ttOrderHedRow.ShortChar01 
   select UserFile_Row).FirstOrDefault();
    if(UserFile != null)
        {
        this.callContextBpmData.ShortChar01 = UserFile.EMailAddress;
        }
    else
        {
        this.callContextBpmData.ShortChar01 = "NO";
        }
      }
    }

image
image