public IEnumerable<Location> GetAllAncestors( int locationId )
{
return ExecuteQuery( string.Format(
@"
WITH CTE AS (
SELECT * FROM [Location] WHERE [Id]={0}
UNION ALL
SELECT [a].* FROM [Location] [a]
INNER JOIN CTE ON CTE.[ParentLocationId] = [a].[Id]
)
SELECT * FROM CTE
WHERE [Name] IS NOT NULL
AND [Name] <> ''
", locationId ) );
}