问题有一个简单的LINQ到实体查询
问题描述:
我有一个非常简单的LINQ到实体查询,如下所示:问题有一个简单的LINQ到实体查询
var orderID = 1;
var orders = (from o in db.Orders
where o.OrderID == orderID
select o).SingleOrDefault();
谁能告诉我,为什么这个查询是行不通的?它甚至不会抛出异常。我也检查过SQL分析器,上面的查询甚至不会触发相应的SQL查询。但是当我直接插入orderID的值到查询其中o.OrderID == 1然后一切正常。
答
首先,一个更简单的查询是
var specifiedOrders = db.Orders.SingleOrDefault(o => o.OrderID == orderID);
其次,你确定你的查询没有在SQL射击?默认情况下,Linq会尽可能延迟查询执行。这意味着它只会在您调用GetEnumerator或查询中的类似操作时执行查询。然而在你的例子中,.SingleOrDefault()调用应该执行查询。
检查以下内容:
- 查询的结果。订单的价值是什么?
- 如果您在Visual Studio中执行此操作,请将鼠标悬停在db.Orders上并检查其值。
- 您是否连接到正确的数据库?