2013-02-12 2 views
2
//get full list of active employees 

    public static object EmployeeList() 
    { 
     string traceFile = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 

     var empList = (from emp in dbViews.EmployeeList 
         where emp.StatusID == 7 
         orderby emp.EmpNo 
         select new 
         { 
          emp.id, 
          emp.Name, 
          emp.EmpNo, 
          emp.Telephone, 
          emp.EmployeeType, 
          emp.DepartmentName, 
          emp.Supervisor, 
          emp.ImmediateSupervisor, 
          emp.StatusID 
         }); 

     File.AppendAllText(traceFile, ((ObjectQuery)empList).ToTraceString()); 
     return empList.ToList(); 
    } 

При выполнении приведенного выше кода, я получаю ошибку ниже, и я не знаю, почемуКак получить реальный T-SQL, генерируемый Entity Framework с ToTraceString() не работает

*

Невозможно применить объект типа 'System.Data.Entity.Infrastructure.DbQuery 1[<>f__AnonymousType0 9 [System.Int32, System.String, System.String, System.String, System.String, System.String, System.String, System. String, System.Nullable`1 [System.Int32]]] ' для ввода' System.Data.Objects.ObjectQuer у».

*

Я просто хочу, чтобы получить реальную T-SQL, генерируемый выше Entity Framework кода. Ошибка в строке ниже

File.AppendAllText(traceFile, ((ObjectQuery)empList).ToTraceString()); 

ответ

3

Вы используете DbContext API, так что вы можете использовать только empList.ToString().

+0

Когда вызов .ToString(), я получаю сообщение об ошибке «Доступ к пути» C: \ Users \ myUserName \ Desktop 'отрицается. " – StackTrace

+0

Возможно, это проблема вашего файла File.AppendAllText и разрешения для вашего приложения. Это не связано с вызовом метода ToString. –