public SelectStatement WrapIfNotCompatible(SelectStatement select, DbExpressionKind expressionKind)
{
if (select.IsCompatible(expressionKind)) return select;
SelectStatement newSelect = new SelectStatement();
select.Wrap(scope);
newSelect.From = select;
return newSelect;
}