【问题标题】:WCF/C# Passed value is different from submissionWCF/C#传递的值与提交不同
【发布时间】:2015-08-12 04:32:33
【问题描述】:

我有一个使用 WCF 数据服务和 LINQ 的 C# 控制台应用程序。 我的一些 crud 进程无法正常工作,在一些帮助下,我设法弄清楚了代码失败的原因,但我不知道如何修复它。

当我使用调试器时,我传递给方法的值似乎总是为 0。我正在尝试使用控制台应用程序中的变量设置的 ID 删除记录。

这是数据合同:

    [OperationContract]
    void DeleteRecord(int vehicleIDDel);

这里是服务:

public void DeleteRecord(int vehicleIDDel)
    {

        VehicleStockItem vehicle =
         (from v in db.VehicleStockItems
          where v.VehicleStockItemID == vehicleIDDel
          select v)
          .FirstOrDefault();

        db.VehicleStockItems.Remove(vehicle);
        db.SaveChanges();

    }

这是来自服务消费者的代码:

        Console.Write("Enter ID of Vehicle to delete: ");
        int vehicleIDDel = int.Parse(Console.ReadLine());
        vehicleRef.DeleteRecord(vehicleIDDel);
        Console.Write("Successfully deleted record #" + vehicleIDDel + ".\nPress enter to continue");
        Console.ReadLine();

这是当我尝试使用控制台应用程序使用 ID 16 删除记录时发生的错误:

在这里您可以看到 vehicleIDDel 设置为 0,即使我从控制台应用程序将变量传递为 16。为什么它在我的服务上显示为 0,即使这不是我发送的内容?该服务使用测试客户端并在其中设置变量可以正常工作。

【问题讨论】:

  • 断点到达vehicleRef.DeleteRecord(vehicleIDDel);行的时候会去什么值?? .如果发送了 16 并且在服务中没有收到它,那么代理中的值会中断。
  • @Turbulence vehicleRef.DeleteRecord(vehicleIDDel); = 16 在它被通过之前。有什么想法吗?
  • 您能否更新服务参考并检查您是否会修改服务并且尚未更新消费者客户端
  • 这修复了它。我爱你,但同时我现在想哭。浪费了这么多时间。我应该先试试这个!!
  • 哈哈..我怀疑在您说它在您的测试客户端中工作的那一刻更新服务引用应该是一个错误。因此,最终的检查将在代理。

标签: c# linq wcf wcf-data-services


【解决方案1】:

在你的 sn-p 中没有这么大的问题。如果没有找到匹配项,那么您的查询将返回 null,并且不允许从列表中删除 null,这就是该错误的原因。您可以通过以下代码避免这种情况:

    VehicleStockItem vehicle =
     (from v in db.VehicleStockItems
      where v.VehicleStockItemID == vehicleIDDel
      select v)
      .FirstOrDefault();
    if(vehicle!=null){
       db.VehicleStockItems.Remove(vehicle);
    db.SaveChanges();}
  // means allow to remove from the list only if the value of`vehicle` is not null

【讨论】:

  • 没有。他的问题是值 vehicleIDDel is 0 而不是 16。
猜你喜欢
  • 2014-08-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-05-14
  • 1970-01-01
  • 2023-03-02
  • 1970-01-01
  • 2013-08-31
相关资源
最近更新 更多