如何将Odata字符串转换为实体对象

时间:2012-07-02 09:26:56

标签: c# wcf entity-framework wcf-data-services odata

有什么办法可以“扭转”Odata服务的效果吗? 即Odata Web服务从实体对象生成RSS xml字符串。

有没有办法可以反过来?即从Odata字符串生成实体对象?

基本上,我正在寻找可以在控制台应用程序中使用的Odata序列化器和解串器功能,而无需创建Odata服务。

我可以访问EDMX文件,使用该文件生成给定的OData字符串。我只需要函数来反序列化数据。

2 个答案:

答案 0 :(得分:1)

这几乎就是ODataLib的用途。它是一个实现OData格式的读者和编写者的库。它不读取或写入实际的实体对象,而是将实体表示为自己的OM(因此您不必为每种实体类型使用CLR类型)。但是将OM转换为实际情况非常容易。

ODataLib(Microsoft.Data.OData.dll)在NuGet上可用,或者它是WCF Data Services 5.0版本的一部分。

以下是如何使用它的简短示例:http://blogs.msdn.com/b/astoriateam/archive/2011/10/14/introducing-the-odata-library.aspx

答案 1 :(得分:0)

这些函数是WCF数据服务的内部实现 - 所有相关的内部类都应位于System.Data.Services.Serializers命名空间内。

您可以尝试使用System.ServiceModel.Syndication中的类来处理Atom / RSS提要。我认为数据服务在内部使用它们,但您很可能会重新实现数据服务中已有的OData处理的一部分。