1

我仍然是 ASP.net MVC 的新手,并且在查询时显示数据时遇到问题。

这是我运行查询的控制器:

public ActionResult Create()
{
    var Status = from s in _db.ReservationsStatus where s.defaultStatus == true select  s.Id;

    ViewData["Status"] = Status;
    return View();
}

然后我在我的视图中从 ViewData 中读取。但是,输出是:

SELECT [Extent1].[Id] AS [Id] FROM [dbo].[ReservationStatus] AS [Extent1] WHERE 1 = [Extent1].[defaultStatus];

我想要的输出是 ID 本身(执行查询的结果)。

4

2 回答 2

3

您需要执行查询。

public ActionResult Create()
{
    var Status = (from s in _db.ReservationsStatus where s.defaultStatus == true select  s.Id).First();

    ViewData["Status"] = Status;
    return View();
}
于 2013-05-16T03:41:27.693 回答
1

LINQ 查询以两种模式执行 - 延迟和立即。在您提到的情况下,它是延迟执行,因此查询被分配给 var 直到它被执行。这将在您开始遍历结果时发生。您可以通过调用诸如 First 或 count 之类的东西来使查询立即执行,这将强制查询执行并返回一个值。

于 2013-05-16T03:49:53.520 回答