public IEnumerable<int> GetAllDescendentIds( int parentLocationId )
{
return this.Context.Database.SqlQuery<int>( string.Format(
@"
WITH CTE AS (
SELECT [Id], [ParentLocationId] FROM [Location] WHERE [ParentLocationId]={0}
UNION ALL
SELECT [a].[Id], [a].[ParentLocationId] FROM [Location] [a]
INNER JOIN CTE pcte ON pcte.[Id] = [a].[ParentLocationId]
)
SELECT [Id] FROM CTE
", parentLocationId ) );
}