【发布时间】:2019-10-30 15:51:35
【问题描述】:
用户可以输入一个 conn 字符串,例如:
(LocalDb)\\MSSQLLocalDB,ef core 负责将其放入我的表中并正确存储。但是当我把它读出来并尝试使用它时,它包含一个额外的 2 \ e.g.(LocalDb)\\\\MSSQLLocalDB,
我使用 ef core 直接从我的数据库中获取它,并将其存储在变量中,如下所示:
var serverConn = dbSetting.CustomerConnectionSettings.ServerConnection;
serverConn 的字符串带有额外的 \\ 导致我的连接失败, 我需要执行某种编码/解码吗?
【问题讨论】:
-
请说明 a) 添加的是哪个字符,以及 b) 您在哪里看到的。在调试器监视窗口中,反斜杠将被转义,因为它向您显示 C# 字符串文字。为什么用户输入带有转义反斜杠的字符串?
-
额外的 \\ 已添加,正如我的问题中所说,调试器显示 c# 字符串文字,但变量本身在使用时也包含字符串文字。 @EdPlunkett
-
请提供一个完整的代码示例和给出的输入。我们通常不喜欢屏幕截图,但我希望看到您观察到“变量本身在使用时也包含字符串文字”的地方的屏幕截图。好消息是编译器或框架中没有在运行时随机添加反斜杠的错误。
-
要么 1. 它以两个斜杠存储在数据库中,因此在读取时,C# 需要将它们都转义,或者 2. 您拥有的某些自定义代码将其转义两次。我的赌注是第一个。
-
它确实在 db @Rhyous 中只存储了 2 个斜杠,我需要以不同的方式存储它吗?我认为 ef core 会为您解决这个问题。
标签: c# .net ef-core-2.0