2012-07-31 169 views
0

我正在使用WCF数据服务。我在我的服务中有一个函数,它在SQL DB的表中添加一条记录并返回插入记录的ID。WCF数据服务ODATA

I用于将要插入参数形式的值传递给函数。

对于实例

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 
} 

我在写服务功能类似上面,我的服务项目是全成。当我更新我的服务提示时,我收到错误

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

感谢您的时间回答我的问题。

+0

谢谢阿南德将开始这样做。其实我不熟悉使用堆栈溢出。谢谢你的建议。我会从现在开始做这件事.. – ssmsnet 2012-07-31 11:32:26

+0

没问题。不用谢 ! – Anand 2012-07-31 11:33:33

回答

1

WCF数据服务(和OData协议)仅支持将原始值作为参数传递给服务操作。

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

+0

嗨,感谢您的回答。你能解释一下,还是有链接分享? – ssmsnet 2012-08-01 09:13:53

+0

不确定你要求的是什么...希望这会有所帮助:http://www.odata.org/documentation/operations#CreatingnewEntries。可能是这样的:http://msdn.microsoft.com/en-us/library/dd723653.aspx – 2012-08-01 10:15:37

+0

对不起。我想通过直接将实体的对象作为参数传递给服务操作来将实体添加到服务中的实体集。从您的答案和研发位置,我发现只有作为服务操作的参数支持原生类型。 – ssmsnet 2012-08-02 09:54:08

相关问题