Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 串联LinQ Lambda表达式中的两个列值_C#_Sql_Linq_Lambda - Fatal编程技术网

C# 串联LinQ Lambda表达式中的两个列值

C# 串联LinQ Lambda表达式中的两个列值,c#,sql,linq,lambda,C#,Sql,Linq,Lambda,我是LinQ的新手,那些Lambda对我来说很棘手:( 我有一个表,其中有两列。First_Name和Last_Name。我正在使用LinQ填充gridview protected void Page_Load(object sender, EventArgs e) { myLinQtoSQLClassDataContext objDataContext = new myLinQtoSQLClassDataContext(); var allUserLi

我是LinQ的新手,那些Lambda对我来说很棘手:(

我有一个表,其中有两列。First_Name和Last_Name。我正在使用LinQ填充gridview

protected void Page_Load(object sender, EventArgs e)
    {
        myLinQtoSQLClassDataContext objDataContext = new myLinQtoSQLClassDataContext();

        var allUserList = from CurrentUser in objDataContext.Users.Where(c => c.Is_Deleted != false)                              
                          select new
                          {
                              CurrentUser.First_Name, 
                              CurrentUser.Last_Name,
                              CurrentUser.Email_ID,
                              CurrentUser.GUID
                          };

        GridView1.DataSource = allUserList;
        GridView1.DataBind();                              
    }
我可以使用LinQ检索这些值,但我想在名字和姓氏之间加一个空格

我尝试访问的等效SQL查询如下所示:

Select First_name + ' ' + Last Name as Username, Email_ID, GUID
From tbl_Users where Is_Deleted != false

如何通过lambda表达式实现这一点?

您可以使用字符串连接:

select new
{
    Username = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
    CurrentUser.Email_ID,
    CurrentUser.GUID
};
试一试

您应该提供“键”(只读属性):

然后在分配用户名时连接字符串。

看看这个
var allUserList = from CurrentUser in objDataContext.Users.Where(c => c.Is_Deleted != false)                              
                  select new
                  {
                      Name = CurrentUser.First_Name + " " + CurrentUser.Last_Name, 
                      CurrentUser.Email_ID,
                      CurrentUser.GUID
                  };

.Net提供了许多可以直接映射到查询的方法,这些方法必须使用其中一个来添加两个字符串
所以你可以用的是

select new 
{ 
    Username = Concat(first_Name,Last_Name), 
    CurrentUser.Email_ID, 
    CurrentUser.GUID 
}; 

以下是另一个有效的变体,但尚未列出:

var allUserList =  objDataContext.Users.Where(c => c.Is_Deleted != false).
     Select(s => new{First_Name + " " + Last_Name, Email_ID, GUID});

在SQL中,您通常应该使用
来表示包含空格的字符串,而不是
。另外,请注意:可能有助于您获取有关linqcheck的更多信息更新的答案可能有助于您…..谢谢大家,所有解决方案都很好。我希望我可以将所有解决方案都标记为正确,但我只能标记一个:(
var allUserList=objDataContext.Users.Where(c=>c.Is_Deleted!=false)。选择(s=>new{FullName=First_Name+“”+Last_Name,Email_ID,GUID});
对我有效。我需要添加FullName作为一个字段
select new 
{ 
    Username = Concat(first_Name,Last_Name), 
    CurrentUser.Email_ID, 
    CurrentUser.GUID 
}; 
var allUserList =  objDataContext.Users.Where(c => c.Is_Deleted != false).
     Select(s => new{First_Name + " " + Last_Name, Email_ID, GUID});
select new
{
    Username = string.Format("{0} {1}", CurrentUser.First_Name, CurrentUser.Last_Name),
    CurrentUser.Email_ID,
    CurrentUser.GUID
};