gpt4 book ai didi

c# - 如何从实体连接字符串中获取数据源、用户 ID 和密码?

转载 作者:行者123 更新时间:2023-11-30 14:53:20 25 4
gpt4 key购买 nike

我们有一个与 Entity Framework 一起工作的 ASP.NET MVC 网络应用程序。到目前为止一切都运行良好,但现在我需要实现一个允许将大量数据导入存档表的功能。

我需要导入的数据是一个 SQL Server Compact 数据库文件,我可以通过 Web 应用程序上传和处理该文件。我的第一次尝试是读入行并为每一行创建新对象,我将其添加到该类型的列表中。然后我使用 EF 的 AddRange() 方法将行添加到数据库。

由于内存和性能问题,即使是小的导入文件,此方法也不起作用。因此,我在 google 上搜索了一下,决定使用 SQL 批量插入(从而绕过 EF),这被明确声明为性能最高的方法。

在我的 web.config 中,我有 EF 连接字符串,其中还包含访问数据库所需的数据。因为我需要使用 SqlConnection,所以我确实需要一个有效的 SQLProvider ConnectionString。在这种情况下,EF 连接字符串不起作用,因为 SqlConnection 无法使用其他条目(导致“不支持的关键字:元数据”等错误)。

所以我想用 SqlConnectionStringBuilder 构建一个新的 SqlConnection 连接字符串。我只需要三个参数:UserID、Password 和DataSource。所有这些都存在于 EF 连接字符串中。

如何从我现有的 EF 连接中获取它们?我绝对不想要一些丑陋的解析/正则表达式,但我不知道如何获得这些值。

最佳答案

您可以尝试将 EntityConnection 直接转换为 SqlConnection。这也将使您能够访问所需的信息。

 using (var ec = new EntityConnection(connstr.ConnectionString))
{
var sqlConn = ec.StoreConnection as SqlConnection;
sqlConn.Open();

var dataSource = sqlConn.DataSource;
var userId = sqlConn.Credential.UserId;
var password = sqlConn.Credential.Password;
}

关于c# - 如何从实体连接字符串中获取数据源、用户 ID 和密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29745214/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com