我正在尝试使用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"
答案 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();