有什么方法可以“反转”Odata服务的效果?即Odata web服务从实体对象生成RSS xml字符串。如何将Odata字符串转换为实体对象
有没有办法做到相反?即从Odata字符串中生成一个实体对象?
基本上,我正在寻找Odata serialisers和deserialiser函数,我可以在控制台应用程序中使用它,而无需创建Odata服务。
我有权访问EDMX文件,使用该文件生成给定的OData字符串。我只需要将数据反序列化的功能。
有什么方法可以“反转”Odata服务的效果?即Odata web服务从实体对象生成RSS xml字符串。如何将Odata字符串转换为实体对象
有没有办法做到相反?即从Odata字符串中生成一个实体对象?
基本上,我正在寻找Odata serialisers和deserialiser函数,我可以在控制台应用程序中使用它,而无需创建Odata服务。
我有权访问EDMX文件,使用该文件生成给定的OData字符串。我只需要将数据反序列化的功能。
这些函数是WCF数据服务的内部实现 - 所有相关内部类应该在System.Data.Services.Serializers
命名空间内。
您可以尝试使用System.ServiceModel.Syndication
的类来处理Atom/RSS提要。我认为数据服务在内部使用它们,但是您很可能会重新实现数据服务中已有的OData处理的一部分。
这几乎就是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