Is there any loss in performance converting a 'where' clause to a lambda? Is there any different in performance for the following 2 queries.
I'm just wondering what is the better of the two:

var res1 = (from a in _ctx.DataContext.Actions
            join e in _ctx.DataContext.Events on a.EventId equals e.EventId                      
            select a).Single(a =&gt; a.ActionId == actionId);


or

var res2 = (from a in _ctx.DataContext.Actions
            join e in _ctx.DataContext.Events on a.EventId equals e.EventId
            where a.ActionId == actionId
            select a).Single();
There should not be any performance difference that is a result of the syntax used. The query syntax is just eye candy that gets converted to the same underlying code.  The difference between the two is really just

_ctx.DataContext.Actions
.Join(_ctx.DataContext.Events, blah, blah, blah)
.Single(a=&gt;a.ActionId == actionId);


vs.

_ctx.DataContext.Actions
.Join(_ctx.DataContext.Events, blah, blah, blah)
.Where(a=&gt;a.ActionId == actionId)
.Single();


If there's a performance difference, I'd be very surprised.  The only way to really tell is to run some tests.  I personally prefer your second method or my first; as I do not like mixing query syntax with imperative syntax.