Как перевести запрос linq в удобочитаемую строку - PullRequest
1 голос
/ 24 ноября 2010

Как мне перевести запрос linq (или выражение, подобное приведенному ниже) в читаемую человеком строку?Полезно для отладки.

Expression<Func<User, bool>> query

Редактировать

Поскольку это было трудно понять: я хочу получить строку из выражения.Отсюда пример объявления выражения.

Expression<Func<User, bool>> query2 = 
   u => u.FirstName.StartsWith("J") && u.LastName == "Gauffin";

Должно быть напечатано что-то вроде "FirstName начинается с 'J', а LastName равно 'Gauffin'";

Ответы [ 2 ]

5 голосов
/ 24 ноября 2010

Совет: если вы запрашиваете с помощью linq to sql или платформы управления данными, вы можете использовать метод ToString () объекта IQueryable, чтобы получить запрос в sql:

query2.ToString () дает что-то вроде

SELECT * FROM Table1 WHERE FirstName LIKE 'J%' AND LastName="Gauffin"
1 голос
/ 25 ноября 2010

Проверьте визуализатор выражений LINQ в папке с образцами VS.

В качестве альтернативы в LINQ to SQL вы можете увидеть его, используя DataContext.Log

В Entity Framework вы приводите запрос LINQ к ObjectQuery и вызываете ToTraceString

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...