【问题标题】:WCF Data Services ODATAWCF 数据服务 ODATA
【发布时间】:2012-08-01 01:55:22
【问题描述】:

我正在研究 WCF 数据服务。我的服务中有一个函数,它将记录添加到 SQL DB 中的表中并返回插入记录的 ID。

我曾经将要插入的值以参数的形式传递给函数。

举例

 public int Add(string Name, string Password)
 {
      // Here I will Add the record and return the ID of the record added in DB
 }

但我不想这样做以参数的形式传递。

我想直接传递对象。

喜欢

public int Add(User user)
{
    // Here I will Add the record and return the ID of the record added in DB
}

我在我的服务中编写了上述功能,我的服务项目成功了。当我更新我的 ServiceRefrences 时,我得到 Error。

它说只支持原始类型。有什么解决办法 这个问题。

感谢您抽出宝贵时间回答我的问题。

【问题讨论】:

  • 感谢 Anand 将开始这样做。其实我不熟悉使用堆栈溢出。谢谢你的建议。从现在开始我会这样做..
  • 没问题。不客气!

标签: asp.net asp.net-mvc-3 wcf-data-services odata


【解决方案1】:

WCF 数据服务(以及与此相关的 OData 协议)仅支持将原始值作为参数传递给服务操作。

将新实体添加到实体集中的 OData 方法是将带有有效负载中的实体的 POST 发送到实体集 URL。在 WCF DS 服务中,这将被转换为对上下文中 IUpdatable 接口的多次调用。

【讨论】:

  • 您好,感谢您的回答。你能解释一下吗,或者如果你有一个链接可以分享。
  • 不确定您的要求...希望这会有所帮助:odata.org/documentation/operations#CreatingnewEntries。可能是这样的:msdn.microsoft.com/en-us/library/dd723653.aspx
  • 很抱歉造成混乱。我想通过将实体的对象直接作为参数传递给服务操作来将实体添加到服务中的实体集。从您的回答和一些研发中,我发现仅支持 prmitives 类型作为服务操作的参数。
  • 是的 - 仅支持原始类型作为参数。如上所述,将实体添加到实体集的推荐方法是向实体集 URL 发送 POST 请求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-11-17
  • 1970-01-01
  • 2011-11-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多