Как получить текст команды SQL при вставке новой записи с помощью Linq? - PullRequest
5 голосов
/ 11 февраля 2009
var newUser = new tblUser() { 
    Email = strEmail,
    Password = strPassword,
    DateBirth = DateTime.Parse(strDateBirth),
};
db.tblUsers.InsertOnSubmit(newUser);
db.SubmitChanges();

Я хочу получить фактический SQL-запрос, сгенерированный linq.

Ответы [ 3 ]

5 голосов
/ 11 февраля 2009

Вам необходимо установить свойство DataContext.Log для модуля записи, вы можете обернуть блок записи в stringbuilder, а затем после ответа вставки. Записать свой stringbuilder.tostring ...

                        StringBuilder sb = new StringBuilder();
                StringWriter writer = new StringWriter(sb);
                Context.Log = writer;
                ...
                    DOINSERT & SUBMITCHANGES
                ...
                Response.Write(sb.ToString());
1 голос
/ 11 февраля 2009

Отметьте MSDN статьи . Вы можете использовать DataContext.Log свойство.

1 голос
/ 11 февраля 2009

db.Log - это TextWriter, который можно использовать для получения текста запроса.

db.Log = Console.Out
var newUser = new tblUser()
{ 
    Email = strEmail,
    Password = strPassword,
    DateBirth = DateTime.Parse(strDateBirth),
};
db.tblUsers.InsertOnSubmit(newUser);
db.SubmitChanges();

И он запишет текст запроса в стандартный вывод.

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