SELECT @id :=
(
SELECT senderid
FROM mytable
WHERE receiverid = @id
) AS person
FROM (
SELECT @id := 5
) vars
STRAIGHT_JOIN
mytable
WHERE @id IS NOT NULL
Попробуйте что-то вроде этого:
var user = (from u in dc.Users
where u.UserName == usn
select u).FirstOrDefault();
метод FirstOrDefault возвращает первый элемент последовательности, которая удовлетворяет указанное условие или значение по умолчанию, если никакой такой элемент не найден.
Почему не что-то как
var user = dc.Users.SingleOrDefault(u=> u.UserName==usn);
Также нужно отметить, что First/FirstOrDefault/Single/SingleOrDefault являются точкой выполнения для LINQ к команде Sql. Так как оператор LINQ не был выполнен прежде, который, он в состоянии влиять на сгенерированный SQL (например, Он может добавить TOP 1 к команде sql)
Я использовал бы Сначала () или FirstOrDefault ().
различие: на Первом () будет исключение, выданное, если никакая строка не может быть найдена.
Я использовал бы метод SingleOrDefault.
var user = (from u in dc.Users
where u.UserName == usn
select u).SingleOrDefault();