我想查询数据库并显示结果。这是我的代码:
[HttpGet]
public ActionResult Index(string message)
{
var Result = from Client in db.Clients
where Clients.ClientName == message
select Clients.ClientName;
ViewBag.Message = Result;
getCurrentUser();
return View();
}
从输入元素中获取消息是可变的。我想在视图中使用ViewBag.Message
显示它。在页面上,我看到了:
SELECT [Extent1].[ClientId] AS [ClientId], [Extent1].[ClientName] AS [ClientName] FROM [dbo].[Clients] AS [Extent1] WHERE [Extent1].[ClientName] = @p__linq__0
这是什么意思?
Result
变量包含linq查询 - 而不是字符串。由于您暗示要显示一条消息,因此需要获得第一个结果 - 而不是查询本身:
ViewBag.Message = Result.FirstOrDefault();
但是,这实际上是您实际上希望ViewBag.Message
是ClientName
数据库列的值(依次与message
相同)...
回答您的原始问题:
您看到的是在DbQuery<T>
上调用ToString()
的结果,该结果为您提供了用于获取所需数据的SQL查询。
循环循环后,查询将仅执行。因此,您需要调用result.tolist()实际获取值
[HttpGet]
public ActionResult Index(string message)
{
var Result = from Client in db.Clients
where Clients.ClientName == message
select Clients.ClientName;
ViewBag.Message = Result.ToList();
getCurrentUser();
return View();
}