我有以下简单的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语句。有什么想法吗?
答案 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()
。