尝试使用Linq to Entities在简单表中查找记录时出错

时间:2014-12-17 15:59:16

标签: c# linq

我有一个简单的表“Orders”,里面有几条记录。我正在使用代码

  Order order;
        if (reg.OrderId != null)
        {
            order = db.Orders.Find(reg.OrderId);
        }
        else
        {
            order = new Order();
        }

从我的表中获取现有订单。 reg.OrderId求值为一个简单的整数(即55)。

当单步执行代码时,我收到错误:“此表达式会导致副作用,不会被评估”

但是如果我在LinqPad中针对相同的上下文进行相同的调用,则会按预期返回数据。这似乎是一段非常简单的代码。

为什么我收到错误?和/或我如何进一步解决这个问题,因为它在LinqPad中工作?

1 个答案:

答案 0 :(得分:0)

我不确定你为什么会收到错误,但这是一个建议:

Order order;
if(order == null)
{
    if (reg.OrderId != null)
    {
        order = db.Orders.Where(o => o.OrderId == reg.OrderId).FirstOrDefault();
    }
    else
    {
        order = new Order();
    }
}