我正在尝试使用linq语句将userName从我的数据库中拉出来获取字符串。但是我不断收到错误。
这是我得到的错误:
无法隐式转换'字符串'到' int'
这很奇怪,因为我试图将它转换为Guid,而不是int。
这是代码:
string ticketChange = "The following change(s) have been made by " + db.Users.Where(u => u.UserId == new Guid["LoggedUserID"]).First().FullName + Environment.NewLine;
我收到了" loggedUserID"目前是一个字符串。
这是我在用户登录时定义LoggedUserID的代码。(我知道这不是执行此操作的最佳方式,我将来会更改,但我需要尽快修复)。它从数据库中提取出一个quid的userID,并将其保存为字符串。
Session["LoggedUserID"] = v.UserId.ToString();
我也尝试过:
Guid.NewGuid(["LoggedUserID"])
但NewGuid没有带任何参数的重载方法。
u.UserID是Guid。那么在这种情况下如何将字符串转换为Guid才能生效呢?
答案 0 :(得分:0)
我不完全确定你在这里想要完成什么。应该是什么“LoggedUserId”?
错误与new Guid["LoggedUserId"]
有关。 Guid
不是字典,所以我不确定为什么你认为你可以索引它或者它会隐含地命名为“LoggedUserId”的密钥,即使你可以。您可以将某些内容传递给构造函数:new Guid(...)
,但是,传递的值必须是可以转换为Guid
的内容,而“LoggedUserId”则不是。{/ p>
答案 1 :(得分:0)
在Chris的帮助下,这就是最终的工作:
Guid g = Guid.Parse(Session["LoggedUserID"] as string);
string ticketChange = "The following change(s) have been made by " + db.Users.Where(u => u.UserId == g).First().FullName + Environment.NewLine;