C# Odata连接的服务避免存储到列表

C# Odata连接的服务避免存储到列表,c#,list,object,odata,microsoft-dynamics,C#,List,Object,Odata,Microsoft Dynamics,我现在正试图使用OdataQueryServices提取某些公开可用的信息。 该服务目前正在发布产品,我可以通过首先将整个产品列表存储到列表中来提取某些产品对象。 这是不需要的,因为空间消耗,并且无法检索最新信息,因为此信息将不断更改 我能做到这一点 ODataQueryService ax = new ODataQueryService(new Uri(config.conf)); ax.Credentials = System.Net.CredentialCa

我现在正试图使用OdataQueryServices提取某些公开可用的信息。 该服务目前正在发布产品,我可以通过首先将整个产品列表存储到列表中来提取某些产品对象。 这是不需要的,因为空间消耗,并且无法检索最新信息,因为此信息将不断更改

我能做到这一点

        ODataQueryService ax = new ODataQueryService(new Uri(config.conf));
        ax.Credentials = System.Net.CredentialCache.DefaultNetworkCredentials;
        var stock = new List<Microsoft.Dynamics.Ax.ODataQuery.InventTable>();


        try
        {
            stock = ax.InventTable.ToList();
        }
        catch(Exception e)
        {
            Console.WriteLine(e.ToString());
        }

        Microsoft.Dynamics.Ax.ODataQuery.InventTable price = stock.Find(x => x.InventTable_ItemId == "030001");

我如何才能做到这一点?

服务是否有文档?如果他们公开OData,那么他们很可能支持OData筛选器。
DataserviceQuery
没有
.AddQueryOption
的选项。Max protocolversion V2I我不熟悉该库,但即使不熟悉,您也可以使用HTTP调用,而不是使用.net客户端。您可能想用MS标记您的问题动力学。我刚才注意到那是你的客户。你看到了吗?
        try
        {
            var item = ax.InventTable.Where(o => o.InventTable_ItemId == "030001");
            Console.WriteLine(item.Expression);
        }
        catch (Exception e)
        {
            Console.WriteLine(e.ToString());
        }