Views: apply filter only if a condition matches
You will have to add a custom module for this. I usually have one monolithic module that I add to every project that I name the same as my project for project specific tweaks like this.

In that module's module file, add this code:

function MODULE_views_query_alter(&amp;$view, &amp;$query){
  // target the correct view
  if ($view-&gt;name == 'chair' &amp;&amp; $view-&gt;current_display == 'entityreference_1') {
    // target the correct path
    $node = menu_get_object();
    if ($node &amp;&amp; arg(0) == 'node' &amp;&amp; arg(2) == 'edit' &amp;&amp; $node-&gt;type == 'lecture') {
      // edit page on lecture type
      $view-&gt;query-&gt;add_where("entityreference_tweak", "node.uid", $node-&gt;uid, '=');
    }
    else if (arg(0) == 'node' &amp;&amp; arg(1) == 'add' &amp;&amp; arg(2) == 'lecture')    
    // create page on lecture type
    {
      global $user;
      $view-&gt;query-&gt;add_where("entityreference_tweak", "node.uid", $user-&gt;uid, '=');
    }
  }
}


I named the entityreference view 'chair', the entityreference display took the default name 'entityreference_1', the lecture content type has the machine name 'lecture'. You need to substitute these name in the code above with your own machine names.

Then completely remove the contextual uid filter from your entity reference view and also do not pass anything to the view in the field settings of the content type. The code adds the filter dynamically. It checks if you are on a lecture edit/add page, then adds either the node author uid, or the uid of the currently logged in user.