如何使用 Entity Framework 6 从 .Net 应用程序访问雪花数据库

Posted

技术标签:

【中文标题】如何使用 Entity Framework 6 从 .Net 应用程序访问雪花数据库【英文标题】:How to access Snowflake Database from .Net application using Entity Framework 6 【发布时间】:2020-09-07 10:43:30 【问题描述】:

我正在构建一个 ASP.NET 应用程序,它可以访问 Snowflake 数据库以获取表数据。我添加了如下连接字符串,还添加了数据库上下文类。

<connectionStrings>
    <add name="SnowflakeContext" 
         connectionString="Offline=False;URL=XXXXXXXXX.snowflakecomputing.com;User=XXXXX;Password=XXXXX;Server=localhost;Database=DEMO_DB;Warehouse=COMPUTE_WH;Account=SYSADMIN;" 
         providerName="System.Data.CData.Snowflake" />
</connectionStrings>
<entityFramework>
    <providers>
        <provider invariantName="System.Data.CData.Snowflake" 
                  type="System.Data.CData.Snowflake.SnowflakeProviderServices, System.Data.CData.Snowflake.Entities.EF6" />
    </providers>
</entityFramework>

我想使用实体框架在.aspx 页面上显示雪花数据库表中的数据。我尝试创建一个网格视图控件,在添加数据源时我只得到 SQL Server 而我没有得到 Cdata Snowflake。我什至从 NuGet 安装了Snowflake.data 包。有人可以帮我吗?

【问题讨论】:

【参考方案1】:

我不是 C# 程序员,但我认为您可能需要安装 Snowflake ODBC driver,然后将网格视图连接到 ODBC 数据源(参见 this page 上的第二个示例)。

【讨论】:

我现在收到以下错误“具有不变名称 'System.Data.CData.Snowflake' 的 ADO.NET 提供程序未在机器或应用程序配置文件中注册,或者无法加载。有关详细信息,请参阅内部异常“。有人可以帮我解决这个例外。我已经在我的配置文件中添加了连接字符串,但仍然没有注册不变的名称。

以上是关于如何使用 Entity Framework 6 从 .Net 应用程序访问雪花数据库的主要内容,如果未能解决你的问题,请参考以下文章

如何将带有 EntityState 和值的查询从 Entity Framework 5 转换为 6?

使用 Entity Framework 6 创建计算属性

我应该如何在 Entity Framework 6 中播种数据

从 Entity Framework 5 升级到 6

在Oracle中使用Entity Framework 6 CodeFirst

如何在 Entity Framework 6 中使用 DbDataReader 获取表名?