我有一个非常简单的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 时,一切正常。
答案 0 :(得分:0)
首先,一个更简单的查询将是
var specifiedOrders = db.Orders.SingleOrDefault(o => o.OrderID == orderID);
其次,你确定你的查询没有在sql中触发吗?默认情况下,Linq将尽可能延迟查询执行。这意味着它只会在您对查询调用GetEnumerator或类似操作时执行查询。但是在您的示例中, .SingleOrDefault()调用应该执行查询。
检查以下内容: