Неверные результаты, что я делаю не так? - PullRequest
3 голосов
/ 10 ноября 2010

У меня есть следующий простой оператор LINQ to SQL:

string strUserID = Eval("whoInsert").ToString();

insLusHmoobDataContext userDataContext = new insLusHmoobDataContext();

var userName = from usr in userDataContext.Users
               where usr.UserId.Equals(strUserID)       
               select usr.UserName;

return userName.ToString();

Вместо того, чтобы показывать мне UserName из таблицы aspnet_Users, он показал мне оператор выбора SQL.Есть идеи?

Ответы [ 3 ]

4 голосов
/ 10 ноября 2010

Вам нужно добавить .Single (). ToString ();

В противном случае вы на самом деле не выполнили запрос - вы съели отчет самого запроса.

2 голосов
/ 10 ноября 2010

userName - это дерево выражений LINQ to SQL, которое вычисляется в SQL-запросе при преобразовании в строку.

Возможно, вы вместо этого хотите использовать userName.First (). ToString ();

Тоспособ выполнения запроса, и вы получите первое возвращаемое значение.Возможно, вы захотите использовать FirstOrDefault () и проверить наличие нулевых значений, чтобы быть уверенным, что не произойдет сбой:)

1 голос
/ 10 ноября 2010
var userName = (from usr in userDataContext.Users where usr.UserId.Equals(strUserID)     
select usr.UserName).SingleOrDefault();

Предполагается, что для этого идентификатора будет один пользователь, иначе вы можете использовать FirstOrDefault().

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