使用LINQ C#返回单个值

时间:2017-09-11 11:46:20

标签: c# linq

我正在尝试使用LINQ返回一个值,而是返回实际的查询。

这是我的代码:

var email = from p in dbContext.People
            where p.UserId == UserId
            select new { p.Email };
Contact.Email = email.ToString();

我想获取用户的实际电子邮件地址,但我得到的是查询字符串。

"SELECT [Extent1].[UserId] AS [UserId], [Extent1].[Email] AS [Email]
  FROM [dbo].[Person] AS [Extent1] WHERE [Extent1].[UserId] = @p__linq__0"

1 个答案:

答案 0 :(得分:2)

使用FirstOrDefault。它返回序列的第一个元素,如果序列不包含元素,则返回默认值。

var email = (from p in dbContext.People
                        where p.UserId == UserId
                        select new { p.Email }).FirstOrDefault();

此外,如果您只想返回Email,您只需返回它,就不需要为此目的使用匿名类型。

var email = (from p in dbContext.People
                    where p.UserId == UserId
                    select p.Email).FirstOrDefault();