You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Visual Studio的Azure Stream Analytics应用中使用NuGet包?

Azure Stream Analytics Edge C# UDF 访问SQL数据库解决方案

Azure Stream Analytics Edge的C# UDF运行环境有特定的程序集限制,直接通过NuGet安装System.Data.SqlClient确实可能遇到问题,以下是可行的实现方式:

方法1:直接使用环境预加载的程序集

Stream Analytics Edge环境已预装System.Data相关基础程序集,无需手动安装NuGet包,直接在C# UDF代码中引用命名空间即可:

using System.Data.SqlClient;

public static string FetchSqlValue(string connStr, string query)
{
    using (var connection = new SqlConnection(connStr))
    {
        connection.Open();
        using (var command = new SqlCommand(query, connection))
        {
            var result = command.ExecuteScalar();
            return result?.ToString() ?? string.Empty;
        }
    }
}

方法2:手动添加指定版本的程序集

如果需要特定版本的System.Data.SqlClient,可以手动引入程序集文件:

  • 从本地NuGet缓存找到对应版本的System.Data.SqlClient.dll(路径一般为C:\Users\<你的用户名>\.nuget\packages\system.data.sqlclient\<版本号>\lib\netstandard2.0)
  • 在Stream Analytics项目的C# UDF代码目录下创建References文件夹,将dll文件放入其中
  • 在UDF代码开头添加程序集引用:
#r "References/System.Data.SqlClient.dll"
using System.Data.SqlClient;

方法3:改用内置SQL关联查询(推荐)

若只是需要读取SQL表值关联流数据,无需编写C# UDF,直接通过Stream Analytics的引用输入配置SQL数据库,然后在查询语句中关联即可,更高效简洁:

SELECT 
    stream.*,
    sql_ref.target_value
INTO 
    output_stream
FROM 
    stream_input stream
JOIN 
    sql_reference_input sql_ref
ON 
    stream.match_key = sql_ref.match_key

注意事项

  • 确保Stream Analytics Edge模块有访问目标SQL数据库的网络权限(如处于同一VNet,或SQL服务器已放行模块IP)
  • 连接字符串避免硬编码,建议通过Azure IoT Hub设备孪生属性存储敏感信息

内容的提问来源于stack exchange,提问作者Alan Henry

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 07:27:07