C# 尝试在具有Linq to实体的简单表中查找记录时出错
我有一个简单的表“Orders”,其中有多条记录。我正在使用代码C# 尝试在具有Linq to实体的简单表中查找记录时出错,c#,linq,C#,Linq,我有一个简单的表“Orders”,其中有多条记录。我正在使用代码 Order order; if (reg.OrderId != null) { order = db.Orders.Find(reg.OrderId); } else { order = new Order(); } 从我的表中获取现有订单。reg.OrderId计算为一个简单整数(
Order order;
if (reg.OrderId != null)
{
order = db.Orders.Find(reg.OrderId);
}
else
{
order = new Order();
}
从我的表中获取现有订单。reg.OrderId计算为一个简单整数(即55)
单步执行代码时,我得到一个错误:“此表达式会产生副作用,不会被计算”
但是,如果我在同一上下文中对LinqPad进行相同的调用,它将按预期返回数据。这似乎是一段非常简单的代码
为什么我会出错?和/或由于它在LinqPad中工作,我如何进一步排除故障?我不知道为什么会出现错误,但这里有一个建议:
Order order;
if(order == null)
{
if (reg.OrderId != null)
{
order = db.Orders.Where(o => o.OrderId == reg.OrderId).FirstOrDefault();
}
else
{
order = new Order();
}
}
我没有答案,但在调试一段时间后,我看到了类似的事情。有时会给我不同的结果。
John S
看看这是什么样的“错误”?我认为该消息应该只出现在“监视”窗口中(因为您不希望在每一步都执行类似于Find()的操作)。代码本身应该可以工作。