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

4

我有一个简单的名为“Orders”的表,其中有几条记录。我正在使用以下代码:

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

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

当逐步执行代码时,我会得到一个错误:"This expression causes side effects and will not be evaluated"

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

为什么我会收到这个错误?和/或者我如何进一步排除故障,因为它在LinqPad中可行?


3
我没有答案,但当我调试一段时间后,我曾看到过类似的情况。关闭并重新开启有时会给我带来不同的结果。 - crthompson
John S,请看一下这个MSDN Entity Framework 查询/查找实体 - MethodMan
你遇到了什么样的“错误”?我认为该消息应该只出现在监视窗口中(因为您不希望在每一步上执行类似于Find()的操作)。代码本身应该是有效的。 - James Curran
1个回答

0

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

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接