如何设置定义文件以在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);
}
可以使用#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;
}
}
}