我可以创建SQL查询并使用Azure Functions返回其结果吗?

时间:2016-11-22 15:25:42

标签: c# mysql azure-functions

我想将我的C#程序移植到MS Azure Functions。它执行SQL-Query并返回结果(IEnumerable)。我想在PowerApps中使用它。

我可以这样做吗?

1 个答案:

答案 0 :(得分:2)

要连接到SQL,您需要在应用程序设置中添加连接字符串。有关详细说明,请参阅here。 以下是CSharp中使用Linq to SQL并返回查询结果的HTTPTrigger示例

  • 进入功能应用设置 - >去Kudu - >转到D:\ home \ site \ wwwroot \ YourFunction
  • 创建文件夹bin
  • 上传System.Data.dll,System.Data.Linq.dll
  • 从门户网站上的View Files UI或Kudu

    上传TodoItem.csx以下
    #r "System.Data.Linq.dll"
    
    using System.Data.Linq.Mapping;
    
    [Table(Name = "TodoItems")]
    public class TodoItem
    {
       [Column]
       public string Id;
       [Column]
       public string Text;
       [Column]
       public bool Complete;
    }
    

    注意:TodoItems是您的数据库表

  • HttpCSharpTrigger函数

    #r "System.Data.dll"
    #r "System.Data.Linq.dll"
    
    #load "TodoItem.csx"
    
    using System.Net;
    using System.Data.SqlClient;
    using System.Data.Linq;
    
    public static async Task<HttpResponseMessage> Run(HttpRequestMessage   req, TraceWriter log)
    {
         log.Info("C# HTTP trigger function processed a request.");
    
         var connectionString =   System.Configuration.ConfigurationManager.ConnectionStrings["sqlconn"].ConnectionString;
         SqlConnection conn = new SqlConnection(connectionString);
         DataContext db = new DataContext(conn);
         Table<TodoItem> todoItems = db.GetTable<TodoItem>();
         IEnumerable<TodoItem> items = todoItems.ToList();
    
         return req.CreateResponse(HttpStatusCode.OK, items);
    }
    

注意: sqlconn 是应用程序设置的名称

您可以调用此API from Power Apps

希望这有帮助!