Reusing query logic in LINQ