Класс ObjectQuery имеет функцию ToTraceString (). Однако большинство запросов, которые вы пишете в LINQ, создаются как IQueryable, поэтому вам сначала нужно привести их к ObjectQuery для его использования.
или, если вы определите этот метод расширения, вы можете использовать его с IQ
public static string ToTraceString<T>(this IQueryable<T> expression)
{
ObjectQuery<T> objectQuery = expression as ObjectQuery<T>;
if (objectQuery != null)
{
return objectQuery.ToTraceString();
}
return "";
}
...
//then you could use it like this
IQueryable<Record> records = db.Record.Where(r=>r.Value > x);
string generatedQuery = record.ToTraceString();