我正在使用该Microsoft.Data.OData
库,基本上想构建一个程序,该程序DataTable
从 OData 查询中获取一个,从中构建一个数据库,然后插入记录。
由于这需要是动态的,因此服务引用对我不起作用。
在 MSDN 上搜索和筛选文档两个小时后,我还没有找到解决问题的方法。
到目前为止,我的代码如下,我只需要知道是否有人从 anHttpWebRequest
到 anODataReader
或任何相关类,这将使我无需编写自己的解析器即可读取查询结果,以及他们是如何做到的。
public class ODataPuller
{
private readonly Uri uri;
public ODataPuller(Uri uri)
{
this.uri = uri;
}
private async Task<HttpWebResponse> MakeRequestAsync(string filter)
{
filter = "?$filter=" + filter;
Uri target = new Uri(this.uri, filter);
HttpWebRequest request = HttpWebRequest.CreateHttp(target);
request.Headers["Accept"] = "application/xml";
HttpWebResponse response = await request.GetResponseAsync() as HttpWebResponse;
return response;
}
public async Task<DataTable> GetDataTableAsync(string filter)
{
HttpWebResponse response = await this.MakeRequestAsync(filter);
Stream stream = response.GetResponseStream();
// Turn this stream into something nice
}
}