Simple.odata.client停止查找#元数据



我正在构建一个客户端,以从V4 oData服务返回数据。以下代码在LinqPad v5和v6中运行良好。但是在VisualStudioONLY中实现它似乎会创建#元数据的GET请求,然后结束。

我主要是在Windows10上创建的,但我也在Mac的VS中尝试过。它运行,但也只为#元数据创建GET。

我创建了新的、干净的项目。我已经回到使用框架GIT站点中最简单的请求示例。我尝试过使用.Net Core(2.2和3.0(、.Net Standard和.Net Framework的新项目。

var credentials = new NetworkCredential("username", "password");
var URL = new Uri("http://servername:60080/#########.odata/");
var settings = new ODataClientSettings(URL, credentials)
{
IgnoreResourceNotFoundException = true,
OnTrace = (x, y) => Console.WriteLine(string.Format(x, y)),
PayloadFormat = ODataPayloadFormat.Json,
IgnoreUnmappedProperties = true,
RenewHttpConnection = true,
TraceFilter = ODataTrace.All,
PreferredUpdateMethod = ODataUpdateMethod.Patch
};
var client = new ODataClient(settings);
var annotations = new ODataFeedAnnotations();
IEnumerable<APPLICATIONS_RAW> packages = await client
.For<APPLICATIONS_RAW>()
.Filter(f => f.TIMEFRAME >= convertedStartOffset)
.Filter(f => f.TIMEFRAME < convertedEndOffset)
.FindEntriesAsync(annotations);
while (annotations.NextPageLink != null)
{
countPages++;
IEnumerable<APPLICATIONS_RAW> packages2 = await client
.For<APPLICATIONS_RAW>()
.FindEntriesAsync(annotations.NextPageLink, annotations);
packages = packages.Concat(packages2);
}

代码通常返回以下内容(后面跟着数据(。

GET request: http://servername:60080/#####.odata/$metadata
Request
completed: OK

GET request: http://servername:60080/#####.odata/APPLICATIONS_RAW?$filter=...

在Visual Studio中,我得到的只是…

GET request: http://servername:60080/#####.odata/$metadata


然后它自然退出。没有错误。我觉得我错过了一些基本的东西,但我就是找不到。如果有人对此有一些建议,那就太棒了。

我找到了解决方案。而且它不是来自oData请求本身。这是因为该代码要求对该代码的调用也是一个等待。我一直在使用以下

await restIngest();

并通过将其更改为来解决问题

restIngest.Wait();

相关内容

  • 没有找到相关文章

最新更新