3

Having this model (All properties are Single (not Collection) navigation properties)

- University
  - Department
    - Classroom
      - Teacher

In order to get the dotted name for each level we have to write it manually.

   query.Include("Department")
        .Include("Department.Classroom")
        .Include("Department.Classroom.Teacher")

For the very first level we can use nameof(University.Department) but for the rest we have two write it manually.

How can we have it as easy as something like nameof(University.Department.Classroom) ?

P.S. I don't want to use Select or SelectMany extension methods, I need to have them as string values.

Mohsen Afshin
  • 13,273
  • 10
  • 65
  • 90
  • Ugly idea: `.Include(nameof(University.Department) + "." + nameof(University.Department.Classroom) + "." + nameof(University.Department.Classroom.Teacher))`. – Jeppe Stig Nielsen Aug 09 '16 at 14:10
  • 1
    @JeppeStigNielsen, although ugly, but if it worked it was not bad. The problem is that `nameof` doesn't work with more than one level of nesting. You will get `An object reference is required for the non-static field, method, or property ` – Mohsen Afshin Aug 09 '16 at 14:13
  • `nameof(University.Department) + "." + nameof(University.Department.Classroom) + "." + nameof(University.Department.Classroom.Teacher)` works just fine for me. – Paulo Morgado Aug 09 '16 at 21:44
  • 1
    With C# 6: $"{nameof(University)}.{nameof(University.Department)}" – Koce Dec 06 '17 at 09:07

0 Answers0