13

私はLinQが初めてで、これらのラムダは私には扱いにくいようです:(

2つの列があるテーブルがあります。姓と名。LinQ を使用してグリッドビューを作成しています。

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

ラムダ式でこれを達成するにはどうすればよいですか?

4

7 に答える 7

23

文字列連結を使用できます。

select new
{
    Username = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
    CurrentUser.Email_ID,
    CurrentUser.GUID
};
于 2012-04-19T09:24:45.277 に答える
4

試す

     select new
            {
                          FullName = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
                          CurrentUser.Email_ID,
                          CurrentUser.GUID
            };
于 2012-04-19T09:24:53.223 に答える
2
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
                  };
于 2012-04-19T09:26:39.150 に答える
1

匿名型の「キー」(読み取り専用プロパティ) を指定する必要があります。

select new
{
  Name = CurrentUser.First_Name + " " + CurrentUser.Last_Name,
};

そして、ユーザー名の割り当て時に文字列を連結するだけです。

于 2012-04-19T09:25:27.337 に答える
1

このCLR Method to Canonical Function Mapping
.Netを見てください。クエリに直接マップできる多くのメソッドが用意されています。そのうちの1つを使用して2つの文字列を追加する必要があるため、使用できるメソッド

select new 
{ 
    Username = Concat(first_Name,Last_Name), 
    CurrentUser.Email_ID, 
    CurrentUser.GUID 
}; 
于 2012-04-19T09:27:19.127 に答える
0

リストされていない、機能する別のバリ​​エーションを次に示します。

var allUserList =  objDataContext.Users.Where(c => c.Is_Deleted != false).
     Select(s => new{First_Name + " " + Last_Name, Email_ID, GUID});
于 2014-07-30T20:19:12.460 に答える