#sql #linq
#sql #linq
Вопрос:
Просто пытаюсь получить sql, сгенерированный запросом linq.
Комментарии:
1. Используете ли вы Linq2SQL или Entity Framework?
2. Я использую Entity Framework. Есть ли способ, с помощью которого я могу понять, какая команда SQL выполняется для конкретного запроса LINQ?
3. @DanielHilgarth, я Linq2SQL. Но решение как с EF, так и с Linq2SQL, я уверен, было бы замечательным.
Ответ №1:
С помощью Linq2SQL
dc.GetCommand(query).CommandText
смотрите http://msdn.microsoft.com/en-us/library/system.data.linq.datacontext.getcommand.aspx для получения дополнительной информации.
Но я обычно использую LINQPad
Комментарии:
1. Спасибо, я верю, что это сработает. Извините за поздний ответ.
Ответ №2:
Для этого есть 3 способа.
1. Вы можете использовать LINQPad.Это бесплатно http://www.linqpad.net /
2. Вы можете использовать профилировщик SQL Server внутри Sql Server (Инструменты -> Профилировщик SQL Server)
3. Вы можете использовать Visual Studio Debugger для генерации T-Sql. (с любой версией Visual Studio)
Ответ №3:
Используйте SQL Profiler
, если вы используете SQL Server в качестве базы данных.
Ответ №4:
Это появилось в Google, это руководство из 8 частей. Я думаю, это займет вас на несколько часов, мне это кажется довольно подробным.
1: http://weblogs.asp.net/scottgu/archive/2007/05/19/using-linq-to-sql-part-1.aspx
3: http://weblogs.asp.net/scottgu/archive/2007/06/29/linq-to-sql-part-3-querying-our-database.aspx
4: http://weblogs.asp.net/scottgu/archive/2007/07/11/linq-to-sql-part-4-updating-our-database.aspx
Удачи.
Ответ №5:
Другой способ
Из статьи MSDN Как: Отобразить сгенерированный SQL (LINQ to SQL)
Установите для DataContext.Log
свойства значение Console.Out
, и вы увидите его в консоли
Ответ №6:
Самый простой способ, который я мог бы предложить, — это использовать Database
Log
. Установите Log
после инициализации DataContext
, и вы сможете отслеживать все, что делается EF в окне Visual studio output
.
DataContext db = new DataContext();
db.Database.Log = generatedSQL =>
{
Debug.WriteLine(generatedSQL);
};
Комментарии:
1. это было бы неплохо, но свойство Log недоступно в базе данных. (netcore 3.1)
Ответ №7:
Вы можете использовать средства диагностики в Visual Studio, чтобы просмотреть сгенерированный запрос.
Чтобы включить это, перейдите в правый верхний угол, там вы можете увидеть быстрый поиск и ввести инструменты диагностики.
В результатах нажмите на соответствующую опцию и смотрите ниже сгенерированный запрос.