Entity Framework-просмотр Sql с помощью toTraceString

Я пытаюсь просмотреть сгенерированный sql, который Entity Framework 5.0 генерирует из запроса сущностей. По всей сети () все говорят, что бросить IQuerable объект ObjectQuery object, а затем используйте метод toTraceString () для возврата сгенерированного запроса.

однако я продолжаю получать исключение недопустимого случая:

    Unhandled Exception: System.InvalidCastException: Unable to cast object of type
'System.Data.Entity.Infrastructure.DbQuery`1[System.String]' to type 'System.Data.Objects.ObjectQuery'.

каков новый способ сделать это в Entity Framework 5?

2 ответов


вы можете просмотреть сгенерированный SQL из IQueryable с помощью .ToString(), например,

var query = context.People.Where(x => x.DomainId == 1);
Console.WriteLine(query.ToString());

вы используете SQL Server? Если да, попробуйте использовать профилировщик. Инструменты - > профилировщик SQL Server в версии разработки Management Studio