प्रीकंपील्ड सी # एज़ूर फ़ंक्शन में अनिवार्य बाइंडिंग का उपयोग करते समय आप कॉसमॉस डीबी डेटाबेस और संग्रह नामों को कैसे परिभाषित करते हैं?

मैंने run.csx C# स्क्रिप्ट उदाहरण का अनुसरण किया है Azure Functions और Cosmos DB का उपयोग करके असंरचित डेटा संग्रहीत करें और यह ठीक काम करता है।

पूर्व-संकलित C# फ़ंक्शन के समान करने का प्रयास करते हुए, और देखा कि जेनरेट किए गए function.json में डेटाबेस और संग्रह नाम गुम हैं।

DocumentDB के साथ एट्रिब्यूट की गई विधि मिल गई ...

[HttpTrigger(
  AuthorizationLevel.Function, 
  "get", "post", 
  Route = null)] HttpRequestMessage req,
[DocumentDB(
  ConnectionStringSetting = "cflogdev_DOCUMENTDB", 
  CreateIfNotExists = true,
  PartitionKey = "user" )] out object logDocument,
ILogger log)

लेकिन Intellisense के पास डेटाबेस और संग्रह सेटटेबल मानों के रूप में नहीं है, हालाँकि इसमें उनके साथ एक अधिभार था ...

मैंने DocumentDBattribute और यह उन्हें दूसरे कंस्ट्रक्टर के हिस्से के रूप में रखता है।

लेकिन आप उन्हें कैसे सेट कर सकते हैं?

1
SteveC 8 अगस्त 2017, 12:49

2 जवाब

सबसे बढ़िया उत्तर

इसने इसे हल किया ...

public static HttpResponseMessage Run(
  [HttpTrigger(AuthorizationLevel.Function, "post", Route = null)] HttpRequestMessage req,
  [DocumentDB(
        "logDatabase",
        "logCollection",
        ConnectionStringSetting = "cflogdev_DOCUMENTDB",
        //PartitionKey = "user",
        CreateIfNotExists = true
    )] out object logDocument,
  ILogger log)

मैं Microsoft.Azure.WebJobs.Extensions.DocumentDB के संस्करण 1.0.0 का उपयोग कर रहा हूं

0
SteveC 8 अगस्त 2017, 15:02

DocumentDBAttribute(databaseName, collectionName) कंस्ट्रक्टर मेरे द्वारा उपयोग किए जाने वाले संस्करण में उपलब्ध है (1.1.0-beta1)। वे गुण केवल पढ़ने के लिए हैं, इसलिए आप उन्हें डिफ़ॉल्ट कंस्ट्रक्टर से सेट नहीं कर सकते।

0
Mikhail Shilkov 8 अगस्त 2017, 14:57