Have you ever thought of viewing generated SQL query of LINQ you write? You may need the generated query for the debugging and the logging purposes. In this post let us see how to print the generated SQL query on the console.
Let us consider you have written LINQ as follows:
DataClasses1DataContext context = new DataClasses1DataContext(); IEnumerable<Order> result = context.Orders; var product = result.Where(x => x.OrderID == 10248); context.Log = Console.Out; foreach(var r in product) { Console.WriteLine(r.ShipName); }
You can print the generated SQL by putting one line of code just before data gets loaded. In this scenario put following line of code anywhere but before the foreach statement.
You will get the generated SQL query in console as follows:
You can set or get log of the DataContext in a TextWriter. If required you can save them on a file system etc.
Happy Coding.
Leave a Reply