从数据库中抓取字符串并将其放入变量中,该变量包含 2 个额外的 \\

Grabbing string from database and putting it into variable, the variable contains 2 extra \\

用户可以输入一个连接字符串,例如: (LocalDb)\MSSQLLocalDB,ef core 负责将其放入我的 table 并正确存储。然而,当我把它读回来并尝试使用它时,它包含一个额外的 2 \ 例如 (LocalDb)\\MSSQLLocalDB

我使用 ef core 直接从我的数据库中获取它,并将其存储在变量中,如下所示:

     var serverConn = dbSetting.CustomerConnectionSettings.ServerConnection;

serverConn 的字符串带有额外的 \\ 导致我的连接失败, 我需要执行某种 encoding/decoding 吗?

连接到 LocalDB ((LocalDb)\MSSQLLocalDB) 时只需要一个斜线。我认为您(或用户)认为您需要像在代码中那样转义斜杠(例如 string conString = "(LocalDb)\MSSQLLocalDB")。

但是如果连接字符串存储在某个地方,那么您应该只使用一个斜线。您仍然会在调试器中看到 两条斜线,但是如果您将其打印出来,您会发现确实只有一条斜线。

C# 将用两个斜杠转义每个斜杠。

不需要在数据库中转义,所以在数据库中用1个斜杠存储。