LINQ WHERE declaración / ignorar condiciones

Necesito ignorar algunas o todas las condiciones en la instrucción WHERE si el parámetro es nulo o está vacío F.E:

Tengo una consulta LINQ simple

var query = from x in context.a
            where x.p == param1 && x.i == param2
            select x;

¿Cómo puedo ignorarx.p == param1 si param1 es nulo o vacío?

EDITA

Intenté esto

var query = from myLog in myContext.ApsValidationLogs
            where (myLog.systemtype == comboBoxSystemType.SelectedItem.ToString() || string.IsNullOrEmpty(comboBoxSystemType.SelectedItem.ToString()))
              && (myLog.bankid == comboBoxBankId.SelectedItem.ToString() || string.IsNullOrEmpty(comboBoxBankId.SelectedItem.ToString())))
            select myLog;

Pero tengo

Object reference not set to an instance of an object.

En caso de que el elemento del segundo cuadro combinado sea nulo. ¿Qué pasa?

Respuestas a la pregunta(2)

Su respuesta a la pregunta