2017-06-09 9 views
0

Ich habe ein Problem während der Serialisierung der Linq-Abfrage mit Azure-Funktion und DocumentClient. Die Abfrage verwendet das JsonProperty-Attribut meines POCO nicht.Azure-Funktion CosmosDB-Abfrage Serialisierung

Die Linq Abfrage gibt {{"query":"SELECT * FROM root WHERE (root[\"ObjectType\"] = \"Campaign\") "}} statt {{"query":"SELECT * FROM root WHERE (root[\"objectType\"] = \"Campaign\") "}} Die Linq-Abfrage und die POCO

var query = client.CreateDocumentQuery<Obj>(UriFactory.CreateDocumentCollectionUri("db", "col")) 
          .Where(d => d.ObjectType == "MyObj") 
          .AsEnumerable(); 
public class Obj 
{ 
    [Newtonsoft.Json.JsonProperty("objectType")] 
    public string ObjectType { get; set; } 
} 

Die azur Funktion ist eine vorkompilierte Funktion gestartet mit azur Funktionen-Core-Tools.

Mein dev environement ist:

  • VS 2017
  • azur Funktionen-Core-Tools (neuesten)
  • Net 4.6.1
  • DocumentDB SDK: 1.14.0
  • Newtonsoft : 10.0.0

Derselbe Code funktioniert gut, wenn es in Iisexpress ausgeführt wird.

Danke für Ihre Hilfe!

Antwort

1

Ich kann das nicht repro. Mit dieser Funktion

public static class HttpTriggerCSharp 
{ 
    [FunctionName("HttpTriggerCSharp")] 
    public static async Task<HttpResponseMessage> Run([HttpTrigger()] HttpRequestMessage req, TraceWriter log) 
    { 
     var client = new DocumentClient(new Uri("https://example.com"), string.Empty); 
     var query = client.CreateDocumentQuery<Obj>(UriFactory.CreateDocumentCollectionUri("db", "col")) 
         .Where(d => d.ObjectType == "MyObj") 
         .ToString(); 
     log.Info(query); 
     return req.CreateResponse(HttpStatusCode.OK, "OK"); 
    } 
} 

public class Obj 
{ 
    [Newtonsoft.Json.JsonProperty("objectType")] 
    public string ObjectType { get; set; } 
} 

druckt {"query":"SELECT * FROM root WHERE (root[\"objectType\"] = \"MyObj\") "} korrekt.

Können Sie das versuchen?

diese sind alle Pakete Ich habe in meinem csproj

<PackageReference Include="Microsoft.Azure.DocumentDB" Version="1.14.1" /> 
<PackageReference Include="Microsoft.Azure.WebJobs" Version="2.1.0-beta1" /> 
<PackageReference Include="Microsoft.Azure.WebJobs.Extensions.Http" Version="1.0.0-beta1" /> 
<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="1.0.0-alpha5" />