C# ASP.NETMVC4中的LINQtoSQL返回实际的查询字符串
我试图从AspNetUsers表中获取特定记录(ID)的名字和姓氏字符串值。当我使用LINQtoSQL时,它返回整个Sql查询字符串。这是我的密码:C# ASP.NETMVC4中的LINQtoSQL返回实际的查询字符串,c#,sql,asp.net-mvc,linq,C#,Sql,Asp.net Mvc,Linq,我试图从AspNetUsers表中获取特定记录(ID)的名字和姓氏字符串值。当我使用LINQtoSQL时,它返回整个Sql查询字符串。这是我的密码: var user = User.Identity.GetUserId(); var currentUser = from aspNetUser in db.AspNetUsers where aspNetUser.Id == user
var user = User.Identity.GetUserId();
var currentUser = from aspNetUser in db.AspNetUsers
where aspNetUser.Id == user
select aspNetUser.FirstName + " " + aspNetUser.LastName;
我试图用当前用户的名字和姓氏填充视图中的用户文本框。我已将其作为列添加到AspNetUsers表中。为什么它返回这个丑陋的查询而不是某人的名字和姓氏
它返回这个:
SELECT CASE WHEN ([Extent1].[FirstName] IS NULL) THEN N'' ELSE [Extent1].[FirstName] END + N' ' + CASE WHEN ([Extent1].[LastName] IS NULL) THEN N'' ELSE [Extent1].[LastName] END AS [C1] FROM [dbo].[AspNetUsers] AS [Extent1] WHERE [Extent1].[Id] = @p__linq__0
不确定如何返回SQL查询,但需要从查询返回一条记录。使用First/FirstOrDefault,如:
var currentUser = (from aspNetUser in db.AspNetUsers
where aspNetUser.Id == user
select aspNetUser.FirstName + " " + aspNetUser.LastName)
.FirstOrDefault();
FirstOrDefault
将返回从结果返回的第一条记录。如果没有记录,则返回null
您还可以使用\,因为您正在查询
ID
,并且应该始终返回一条记录。但是,如果有多个记录与您的条件相匹配,则它们都可能引发异常。根据您的要求使用其中任何一种 不确定如何返回SQL查询,但需要从查询返回一条记录。使用First/FirstOrDefault,如:
var currentUser = (from aspNetUser in db.AspNetUsers
where aspNetUser.Id == user
select aspNetUser.FirstName + " " + aspNetUser.LastName)
.FirstOrDefault();
FirstOrDefault
将返回从结果返回的第一条记录。如果没有记录,则返回null
您还可以使用\,因为您正在查询
ID
,并且应该始终返回一条记录。但是,如果有多个记录与您的条件相匹配,则它们都可能引发异常。根据您的要求使用其中任何一种 您可以使用FirstOrDefault()
根据特定条件获取单个记录:
var currentUser = db.AspNetUsers.FirstOrDefault(x=>x.Id == user);
var Name = currentUser.FirstName + " " + currentUser.LastName;
您可以使用
FirstOrDefault()
根据特定条件获取单个记录:
var currentUser = db.AspNetUsers.FirstOrDefault(x=>x.Id == user);
var Name = currentUser.FirstName + " " + currentUser.LastName;
这是第一个默认值。添加后,我得到了用户的名字和姓氏。谢谢。这是
FirstOrDefault
。添加后,我得到了用户的名字和姓氏。非常感谢。