【发布时间】:2017-05-08 08:07:56
【问题描述】:
我收到一条错误消息,提示“非静态方法需要一个目标”
这是导致我出现错误的代码,有人能解释一下吗?
//TODO: Error, Non static method requires a target.
var orderItem =
_context.PurchaseOrderItems.FirstOrDefault(
p => p.JobReference == item.JobReference && p.ItemNumber == item.ItemNumber);
return _context.DeliverySchedules.Include(d => d.PurchaseOrderItem)
.Where(d => d.PurchaseOrderItem.Id == orderItem.Id)
.ToList();
【问题讨论】:
-
EntityFramework.SqlServer.dll 中发生“System.Reflection.TargetException”类型的异常,但未在用户代码中处理附加信息:非静态方法需要目标。
-
.Where(d => d.PurchaseOrderItem.Id == orderItem.Id)如果orderItem从第一个查询返回 null 或没有结果,则可能会抛出 NRE。在使用if (orderItem != null)返回另一个查询之前尝试测试空条件。 -
将
FirstOrDefault更改为Single,因为在下一行中您将获得它的属性并且您不想要 NullReferenceException。
标签: c# entity-framework linq