代码之家  ›  专栏  ›  技术社区  ›  Mark

不正确的结果,我做错什么了?

  •  3
  • Mark  · 技术社区  · 14 年前

    我有以下简单的LINQ to SQL语句:

    string strUserID = Eval("whoInsert").ToString();
    
    insLusHmoobDataContext userDataContext = new insLusHmoobDataContext();
    
    var userName = from usr in userDataContext.Users
                   where usr.UserId.Equals(strUserID)       
                   select usr.UserName;
    
    return userName.ToString();
    

    而不是给我看 UserName aspnet_Users 表中,它显示了SQL select语句。知道吗?

    3 回复  |  直到 14 年前
        1
  •  1
  •   Peter Mortensen icecrime    14 年前
    var userName = (from usr in userDataContext.Users where usr.UserId.Equals(strUserID)     
    select usr.UserName).SingleOrDefault();
    

    假设这个ID只有一个用户,否则你可以使用 FirstOrDefault() .

        2
  •  4
  •   Marc Gravell    14 年前

    否则,您实际上还没有执行查询—您已经报告了查询本身。

        3
  •  2
  •   Jesper Larsen-Ledet    14 年前

    您可能需要userName.First().ToString()来代替;

    您可能需要使用FirstOrDefault()并检查空值以确保不会崩溃:)