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

时间:2010-11-10 18:21:05

标签: c# linq linq-to-sql

我有以下简单的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 个答案:

答案 0 :(得分:4)

您需要添加.Single()。ToString();

否则你实际上没有执行查询 - 你吃了报告查询本身。

答案 1 :(得分:2)

userName是一个LINQ to SQL表达式树,在转换为字符串时计算结果为SQL查询。

你可能想要userName.First()。ToString()代替;

这样执行查询并获得返回的第一个值。 您可能希望使用FirstOrDefault()并检查空值以确保不会崩溃:)

答案 2 :(得分:1)

var userName = (from usr in userDataContext.Users where usr.UserId.Equals(strUserID)     
select usr.UserName).SingleOrDefault();

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