2016-05-19 2 views
0

Я хочу написать ниже запрос в linq.please, помогите мне.Как написать IsNull() в linq?

SELECT ISNULL(userfirstname, '')userfirstname, useremail, usermobile FROM [user] 
WHERE useremail='[email protected]' 
+0

, так как вы находитесь в C# стороне в настоящее время ,. вы можете просто сравнить его с «null» – Sherlock

+0

@PavanReddy, должно ли быть 'ISNULL (userfirstname, ''), userlastname' и т. д.? – GKalnytskyi

ответ

2
db.user.Where(u => u.useremail == "[email protected]"). 
     Select(u => u.userfirstname ?? string.Empty); 

Это фильтры для заданной электронной почты, а затем проецирует результат, возвращая userfirtname или пустую строку, если userfirstname является null.


Для обновленного вопроса:

db.user.Where(u => u.useremail == "[email protected]"). 
     Select(u => new { 
      userfirstname = u.userfirstname ?? string.Empty, 
      useremail = u.useremail, 
      usermobile = u.usermobile}); 

Это возвращает последовательность экземпляров анонимного типа, содержащий ваши ценности. Вы можете создать класс данных для этого тоже, если вы хотите:

public class MyUser 
{ 
    public string userfirstname { get; set; } 
    public string useremail { get; set; } 
    public string usermobile { get; set; } 
} 

db.user.Where(u => u.useremail == "[email protected]"). 
     Select(u => new MyUser { 
      userfirstname = u.userfirstname ?? string.Empty, 
      useremail = u.useremail, 
      usermobile = u.usermobile}); 
+0

Ваш ответ лучше – GKalnytskyi

+0

@GKalnytskyi, пожалуйста, см. Мой отредактированный вопрос. –

+0

@PavanReddy обновил мой ответ (хотя не так хорошо менять ваши требования после того, как вы получили ответы). Обратите внимание, что ваш вопрос в настоящее время не содержит действительного SQL: что это со вторым 'userfirstname' без разделительной запятой? –

1
user.Where(x => x.useremail == "[email protected]").Select(x => new {x.userfirstname ?? string.Empty, x.userlastname, x.useremail, x.usermobile}) 

вы создаете анонимный тип в конце

Смежные вопросы