VSO*_*VSO 4 c# sql entity-framework
问题的焦点是string text格式,其他一切都只是用于上下文.如果重要的话,实际的字符串长约10页.
string text = @"
"" My string ''stringy'' with lots of ''quoties'' "" said Jimmy ''The Jimminator'' Smith.
";
API.Models.Table seedTable = new API.Models.Table()
{
Created = new DateTimeOffset(DateTime.Now),
TableText = text
};
db.Table.AddOrUpdate(seedTable);
db.SaveChanges();
Run Code Online (Sandbox Code Playgroud)
这是处理从EF到SQL的单引号和双引号保存字符串的正确方法吗?如果没有,那么正确的方法是什么?db只是我们的dbContext.
编辑:这个问题可能并不清楚.我担心的是,当我在SQL Server中发出查询或从C#执行SQL命令时,我不能用单引号输入任何字符串而不加倍.但是,我的问题是EF是否足够聪明,可以用单引号保存字符串或者需要将它们加倍.
从.NET到SQL是担心EF的问题.什么字符特殊以及如何逃避它们的规则因数据库而异,但在每种情况下,EF都有代码来处理它.
因此,您根本不需要担心'SQL中的特殊问题.
因此,您需要担心的是如何在.NET中编写有效的字符串.如果@在字符串之前使用具有逐字字符串文字,则所有字符都按原样处理,除了"被转义为"".
如果没有,则不允许使用换行符或引号,但可以使用以下转义来转义它们:
\u 后跟四个十六进制数字:具有该代码点的字符\U 后跟八个十六进制数字:具有该代码点的字符.\x 后跟一到四个十六进制数字:具有该代码点的字符.\a和\u0007(钟)相同\b与\u0008(退格)相同\f与\u000C(换页)相同\n与\u000A(换行符)相同\r与\u000D(回车)相同\t与\u0009(标签)相同\v与\u000B(垂直标签)相同\'与\u0027(撇号)相同\"与\u0022(引号)相同\\与\u005C()相同\0与\u0000(空字符)相同并非所有这些都是字符串所必需的,所以你可以使用'而不是\'但它们被允许难以键入,难以区分(如何从某些空格中分辨标签?)或在其他情境中不允许(你需要\'在字符中)文字).
你的例子:
string text = @"
"" My string ''stringy'' with lots of ''quoties'' "" said Jimmy ''The Jimminator'' Smith.
";
Run Code Online (Sandbox Code Playgroud)
是相同的:
string text="\n \" My string ''stringy'' with lots of ''quoties'' \" said Jimmy ''The Jimminator'' Smith.\n";
Run Code Online (Sandbox Code Playgroud)
或者也许是:
string text="\n\t\" My string ''stringy'' with lots of ''quoties'' \" said Jimmy ''The Jimminator'' Smith.\n";
Run Code Online (Sandbox Code Playgroud)
因为在第一个新线之后你是否想要空格或标签,所以不清楚SO的标记.
其中任何一个都是完全相同的,但是如果你有的原因''是为了逃避SQL,那么你不应该把它留给EF担心.有了这个,你是否有:
string text = @"
"" My string 'stringy' with lots of 'quoties' "" said Jimmy 'The Jimminator' Smith.
";
Run Code Online (Sandbox Code Playgroud)
要么:
string text="\n \" My string 'stringy' with lots of 'quoties' \" said Jimmy 'The Jimminator' Smith.\n";
Run Code Online (Sandbox Code Playgroud)
纯粹是你发现更容易写和阅读的问题.
一般来说,我建议你在大多数时候使用后一种形式,但是@在文本中有很多新行,或者有很多\字符的情况下,使用verbatim()形式(正则表达式和Windows)文件路径,例如).
| 归档时间: |
|
| 查看次数: |
3590 次 |
| 最近记录: |