Выставление SQL сработало при выполнении LINQ - PullRequest
0 голосов
/ 06 сентября 2010

Утро всем.

Просто быстрый для вас - где я могу найти SQL, который выполняется при запуске оператора LINQ?

У меня есть следующий код, который работает угощение,

 var r = (from p in getproductweightsbuyer.tblWeights
                     where p.MemberId == memberid &&
                              p.LocationId == locationid
                     select p);

            if (buyer != "Not Specified")
                r = r.Where(p => p.UnitUserField1 == buyer);

            if (subcategory != "Not Specified")
                r = r.Where(p => p.UnitUserField2 == subcategory);

Я просто не уверен в том, что SQL запускается в условном предложении where.

Ответы [ 4 ]

2 голосов
/ 06 сентября 2010

Если у вас есть контекст базы данных, вы можете попробовать:

context.GetCommand(query).CommandText
1 голос
/ 06 сентября 2010

Если вы используете LINQ to SQL, вы можете установить свойство DataContext.Log.Это будет регистрировать SQL при выполнении запроса:

getproductweightsbuyer.Log = Console.Out;

var r = (from p in getproductweightsbuyer.tblWeights
                    where p.MemberId == memberid &&
                             p.LocationId == locationid
                    select p);

           if (buyer != "Not Specified")
               r = r.Where(p => p.UnitUserField1 == buyer);

           if (subcategory != "Not Specified")
               r = r.Where(p => p.UnitUserField2 == subcategory);

foreach (var row in r)
  ...
1 голос
/ 06 сентября 2010

Как и вышеупомянутые опции, вы также можете запустить SQL Profiler и увидеть фактический SQL, отправленный по проводам в БД.

1 голос
/ 06 сентября 2010

если вы отлаживаете свой код, вы можете поставить точку останова и проанализировать значение r, в котором будет содержаться фактический код SQL.

...