Разный ответ для другой проблемы.
Вы не можете позвонить ToTraceString()
по этому вопросу:
var product = _context.Products.Where( p => p.Category == "Windows" )
.SingleOrDefault();
Вы можете сделать это:
var q = _context.Products.Where( p => p.Category == "Windows" )
var ts = ((ObjectQuery)q).ToTraceString();
var product = q.SingleOrDefault();
... но это не на 100% точно. Поставщик MSSQL EF будет использовать TOP 2
для Single
, который будет пропущен.
С этим можно подойти:
var q = _context.Products.Where( p => p.Category == "Windows" )
var ts = ((ObjectQuery)q.Take(2)).ToTraceString();
var product = q.SingleOrDefault();
... который должен дать вам правильный SQL, но требует знаний о реализации.
Оригинальный вопрос исказил проблему. Мой оригинальный ответ был:
var ts = (product as ObjectQuery).ToTraceString();