Skip to content

Commit 5a300e4

Browse files
committed
updates based on feedback from Charles
1 parent 8f25e56 commit 5a300e4

File tree

2 files changed

+44
-25
lines changed

2 files changed

+44
-25
lines changed

articles/azure-functions/functions-bindings-azuresql-input.md

Lines changed: 25 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,28 @@ This section contains the following examples:
2222
* [HTTP trigger, look up ID from query string](#http-trigger-look-up-id-from-query-string-c)
2323
* [HTTP trigger, get multiple docs from route data](#http-trigger-get-multiple-docs-from-route-data-c)
2424

25-
The examples refer to a simple `ToDoItem` type:
25+
The examples refer to a `ToDoItem` type and a corresponding database table:
2626

2727
```cs
2828
namespace AzureSQLSamples
2929
{
3030
public class ToDoItem
3131
{
3232
public string Id { get; set; }
33+
public int Priority { get; set; }
3334
public string Description { get; set; }
3435
}
3536
}
3637
```
3738

39+
```sql
40+
CREATE TABLE dbo.ToDo (
41+
[Id] int primary key,
42+
[Priority] int null,
43+
[Description] nvarchar(200) not null
44+
)
45+
```
46+
3847
<a id="http-trigger-look-up-id-from-query-string-c"></a>
3948

4049
### HTTP trigger, look up ID from query string
@@ -47,6 +56,7 @@ The following example shows a [C# function](functions-dotnet-class-library.md) t
4756
4857
```cs
4958
using System.Collections.Generic;
59+
using System.Linq;
5060
using Microsoft.AspNetCore.Http;
5161
using Microsoft.AspNetCore.Mvc;
5262
using Microsoft.Azure.WebJobs;
@@ -64,17 +74,17 @@ namespace AzureSQLSamples
6474
CommandType = System.Data.CommandType.Text,
6575
Parameters = "@Id={Query.id}",
6676
ConnectionStringSetting = "SqlConnectionString")]
67-
IEnumerable<ToDoItem> todoitem)
77+
IEnumerable<ToDoItem> toDoItem)
6878
{
69-
return new OkObjectResult(todoitem);
79+
return new OkObjectResult(toDoItem.FirstOrDefault());
7080
}
7181
}
7282
}
7383
```
7484

75-
<a id="http-trigger-get-multiple-docs-from-route-data-c"></a>
85+
<a id="http-trigger-get-multiple-items-from-route-data-c"></a>
7686

77-
### HTTP trigger, get multiple docs from route data
87+
### HTTP trigger, get multiple items from route data
7888

7989
The following example shows a [C# function](functions-dotnet-class-library.md) that retrieves documents returned by the query. The function is triggered by an HTTP request that uses route data to specify the value of a query parameter. That parameter is used to filter the `ToDoItem` records in the specified query.
8090

@@ -91,15 +101,15 @@ namespace AzureSQLSamples
91101
{
92102
[FunctionName("GetToDoItems")]
93103
public static IActionResult Run(
94-
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "gettodoitems/{id}")]
104+
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "gettodoitems/{priority}")]
95105
HttpRequest req,
96-
[Sql("select * from dbo.ToDo where Id > @Id",
106+
[Sql("select * from dbo.ToDo where [Priority] > @Priority",
97107
CommandType = System.Data.CommandType.Text,
98-
Parameters = "@Id={id}",
108+
Parameters = "@Priority={priority}",
99109
ConnectionStringSetting = "SqlConnectionString")]
100-
IEnumerable<ToDoItem> todoitem)
110+
IEnumerable<ToDoItem> toDoItems)
101111
{
102-
return new OkObjectResult(todoitem);
112+
return new OkObjectResult(toDoItems);
103113
}
104114
}
105115
}
@@ -126,15 +136,15 @@ The attribute's constructor takes the SQL command text, the command type, parame
126136
Here's a `Sql` attribute example in a method signature:
127137

128138
```csharp
129-
[FunctionName("ReturnRecords")]
139+
[FunctionName("GetToDoItems")]
130140
public static IActionResult Run(
131-
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "gettodoitems/{id}")]
141+
[HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "gettodoitems/{priority}")]
132142
HttpRequest req,
133-
[Sql("select * from dbo.ToDo where Id > @Id",
143+
[Sql("select * from dbo.ToDo where [Priority] > @Priority",
134144
CommandType = System.Data.CommandType.Text,
135-
Parameters = "@Id={id}",
145+
Parameters = "@Priority={priority}",
136146
ConnectionStringSetting = "SqlConnectionString")]
137-
IEnumerable<ToDoItem> todoitem)
147+
IEnumerable<ToDoItem> toDoItems)
138148
{
139149
...
140150
}

articles/azure-functions/functions-bindings-azuresql-output.md

Lines changed: 19 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,19 +23,28 @@ This section contains the following examples:
2323
* [Http trigger, write one record](#http-trigger-write-one-record-c)
2424
* [Http trigger, write records using IAsyncCollector](#http-trigger-write-records-using-iasynccollector-c)
2525

26-
The examples refer to a simple `ToDoItem` type:
26+
The examples refer to a `ToDoItem` type and a corresponding database table:
2727

2828
```cs
2929
namespace AzureSQLSamples
3030
{
3131
public class ToDoItem
3232
{
3333
public string Id { get; set; }
34+
public int Priority { get; set; }
3435
public string Description { get; set; }
3536
}
3637
}
3738
```
3839

40+
```sql
41+
CREATE TABLE dbo.ToDo (
42+
[Id] int primary key,
43+
[Priority] int null,
44+
[Description] nvarchar(200) not null
45+
)
46+
```
47+
3948
<a id="http-trigger-write-one-record-c"></a>
4049

4150
### Http trigger, write one record
@@ -56,16 +65,16 @@ namespace AzureSQLSamples
5665
public static IActionResult Run(
5766
[HttpTrigger(AuthorizationLevel.Function, "get", Route = "addtodo")] HttpRequest req,
5867
ILogger log,
59-
[Sql("dbo.ToDo", ConnectionStringSetting = "SqlConnectionString")] out ToDoItem newitem)
68+
[Sql("dbo.ToDo", ConnectionStringSetting = "SqlConnectionString")] out ToDoItem newItem)
6069
{
61-
newitem = new ToDoItem
70+
newItem = new ToDoItem
6271
{
6372
Id = req.Query["id"],
6473
Description =req.Query["desc"]
6574
};
6675

6776
log.LogInformation($"C# HTTP trigger function inserted one row");
68-
return new CreatedResult($"/api/addtodo", newitem);
77+
return new CreatedResult($"/api/addtodo", newItem);
6978
}
7079
}
7180
}
@@ -94,16 +103,16 @@ namespace AzureSQLSamples
94103
public static async Task<IActionResult> Run(
95104
[HttpTrigger(AuthorizationLevel.Anonymous, "post", Route = "addtodo-asynccollector")]
96105
HttpRequest req,
97-
[Sql("dbo.Products", ConnectionStringSetting = "SqlConnectionString")] IAsyncCollector<ToDoItem> newitems)
106+
[Sql("dbo.Products", ConnectionStringSetting = "SqlConnectionString")] IAsyncCollector<ToDoItem> newItems)
98107
{
99108
string requestBody = await new StreamReader(req.Body).ReadToEndAsync();
100-
var incomingitems = JsonConvert.DeserializeObject<ToDoItem[]>(requestBody);
101-
foreach (ToDoItem newitem in incomingitems)
109+
var incomingItems = JsonConvert.DeserializeObject<ToDoItem[]>(requestBody);
110+
foreach (ToDoItem newItem in incomingItems)
102111
{
103-
await newitems.AddAsync(newitem);
112+
await newItems.AddAsync(newItem);
104113
}
105114
// Rows are upserted here
106-
await newitems.FlushAsync();
115+
await newItems.FlushAsync();
107116

108117
return new CreatedResult($"/api/addtodo-asynccollector", "done");
109118
}
@@ -135,7 +144,7 @@ Here's a `Sql` attribute example in a method signature:
135144
[FunctionName("HTTPtoSQL")]
136145
public static IActionResult Run(
137146
[HttpTrigger(AuthorizationLevel.Function, "get", Route = "addtodo")] HttpRequest req,
138-
[Sql("dbo.ToDo", ConnectionStringSetting = "SqlConnectionString")] out ToDoItem newitem)
147+
[Sql("dbo.ToDo", ConnectionStringSetting = "SqlConnectionString")] out ToDoItem newItem)
139148
{
140149
...
141150
}

0 commit comments

Comments
 (0)