简单LINQ到实体查询的问题

时间:2010-09-18 08:49:22

标签: linq-to-entities asp.net-4.0

我有一个非常简单的LINQ To Entities查询,如下所示:

   var orderID = 1;
    var orders = (from o in db.Orders
                where o.OrderID == orderID
                select o).SingleOrDefault();

有谁能告诉我为什么这个查询不起作用?它甚至没有抛出异常。我还检查了SQL分析器,上面的查询甚至没有激活相应的SQL查询。但是,当我直接将orderID的值插入查询其中o.OrderID == 1 时,一切正常。

1 个答案:

答案 0 :(得分:0)

首先,一个更简单的查询将是

var specifiedOrders = db.Orders.SingleOrDefault(o => o.OrderID == orderID);

其次,你确定你的查询没有在sql中触发吗?默认情况下,Linq将尽可能延迟查询执行。这意味着它只会在您对查询调用GetEnumerator或类似操作时执行查询。但是在您的示例中, .SingleOrDefault()调用应该执行查询。

检查以下内容:

  1. 查询的结果。订单的价值是多少?
  2. 如果在Visual Studio中执行此操作,请将鼠标悬停在db.Orders上并检查其值。
  3. 您是否正在连接到正确的数据库?