Linq查询连接两个字段

时间:2016-08-05 18:27:11

标签: c# linq

var result = (from u in ctx.Users
              where u.UserId.Equals(id)
              select new
              {
                  FullName = u.LName + ", " + u.FName
              }).ToString();

我也试过

var result = ctx.Users.Where(u => (u.UserId.Equals(id)))
                      .Select( u => new {FullName=u.LName + ", " + u.FName})
                      .ToString();

但是两者都返回SQL Select语句,而不是全名。有人可以帮忙吗?

2 个答案:

答案 0 :(得分:9)

您没有执行查询。要执行查询,您需要调用ToList()First()Single()FirstOrDefault()等特殊方法...

您正在做的只是创建一个查询。 ToString只会为您提供此类查询的表示。

以下是使用First()执行查询的示例:

var result =
    ctx.Users
        .Where(u => u.UserId.Equals(id))
        .Select(u => u.LName + ", " + u.FName)
        .First();

我正在使用First,因为我假设您正在选择特定用户。

或者您的原始代码:

 var result = (from u in ctx.Users
                      where u.UserId.Equals(id)
                      select new
                      {
                          FullName = u.LName + ", " + u.FName
                      }).First();

答案 1 :(得分:1)

请勿使用toString()

 var result = (from u in ctx.Users
                          where u.UserId.Equals(id)
                          select new
                          {
                              FullName = u.LName + ", " + u.FName
                          }).FirstOrDefault();