如何设置定义文件以在Azure函数中使用LINQ

本文关键字:函数 Azure LINQ 文件 何设置 设置 定义 | 更新日期: 2023-09-27 18:13:18

我创建了一个连接到Azure SQL DB并执行直接SQL命令的Azure函数。现在我想用LINQ代替。我已经使用Visual studio来创建定义文件,但我不确定如何引用定义文件,一旦上传到函数。下面的代码得到错误:

错误CS1061: 'SqlConnection'不包含'Customers'的定义,并且没有找到接受'SqlConnection'类型的第一个参数的扩展方法'Customers'(您是否缺少using指令或程序集引用?)

下面是我为Azure函数编写的代码:

using System.Net;
using Dapper;
using System.Data.SqlClient;
using System.Configuration;
public static async Task<HttpResponseMessage> Run(HttpRequestMessage req, TraceWriter log)
{
    log.Info($"C# HTTP trigger function processed a request. RequestUri={req.RequestUri}");
    var cnnString  = ConfigurationManager.ConnectionStrings["SqlConnection"].ConnectionString;
    var connection = new SqlConnection(cnnString);
    var result = from r in connection.Customers select r;
    foreach (var r in result)
    {
        log.Info(r.squid);
    }
    log.Info("Log added to database successfully!");
    return req.CreateResponse(HttpStatusCode.OK);
}

如何设置定义文件以在Azure函数中使用LINQ

可以使用#load加载另一个类。您可以使用代码窗口底部的view files链接创建新文件

运行。csx File

#r "System.Data.Linq"
#load "TodoItem.csx"
using System.Net;
using System.Data.Linq;
using System.Data.Linq.Mapping;
using System.Configuration;
public static void Run(string input, TraceWriter log)
{        
    var cnnString  = ConfigurationManager.ConnectionStrings["MS_TableConnectionString"].ConnectionString;
    DataContext db = new DataContext(cnnString);     
    Table<todoItem> todoItems = db.GetTable<todoItem>();        
    IQueryable<todoItem> itemQuery = from todoItem in todoItems select todoItem;
    foreach (todoItem item in itemQuery)
    {
        log.Info($"ID={item.id}, Text={item.text}");
    }
    return;
}

TodoItem。csx公司文件

#r "System.Data.Linq"
#r "System.Data"
using System.Data.Linq.Mapping;
using System.Data;
[Table(Name = "TodoItem")]
public class todoItem
{
    private string _id;
    [Column(IsPrimaryKey=true, Storage="_id")]
    public string id
    {
        get
        {
            return this._id;
        }
        set
        {
            this._id = value;
        }
    }
    private string _text;
    [Column(Storage="_text")]
    public string text
    {
        get
        {
            return this._text;
        }
        set
        {
            this._text=value;
        }
    }
}