질문의 초점은 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();
이것이 EF에서 SQL로 작은 따옴표와 큰 따옴표로 문자열을 저장하는 올바른 방법입니까? 그렇지 않다면 적절한 방법은 무엇입니까? db
dbContext 일뿐입니다.
편집 : 이것은 질문에서 명확하지 않을 수 있습니다. 내 관심사는 SQL Server에서 쿼리를 실행하거나 C #에서 SQL 명령을 수행 할 때 두 배로 늘리지 않고는 작은 따옴표로 묶인 문자열을 입력 할 수 없다는 것입니다. 그러나 내 질문은 EF가 작은 따옴표로 문자열을 저장할 수있을만큼 똑똑한 지 아니면 두 배로 늘려야하는지 여부입니다.
.NET에서 SQL로 전환하는 것은 EF의 문제입니다. 어떤 문자가 특별하고 이스케이프하는 방법에 대한 규칙은 데이터베이스마다 다르지만 각 경우 EF에는이를 처리하는 코드가 있습니다.
따라서 '
SQL에서 특별 하다는 것에 대해 전혀 걱정할 필요가 없습니다 .
따라서 걱정해야 할 것은 .NET에서 유효한 문자열을 작성하는 방법입니다. @
문자열 앞에 사용 하여 축어 문자열 리터럴을 갖는 경우 . "
로 이스케이프되는 것을 제외하고 모든 문자가있는 그대로 처리 됩니다 ""
.
그렇지 않으면 줄 바꿈이나 따옴표가 허용되지 않지만 다음 이스케이프를 사용하여 이스케이프 할 수 있습니다.
\u
뒤에 4 자리 16 진수 : 해당 코드 포인트가있는 문자\U
8 자리 16 진수 : 해당 코드 포인트가있는 문자.\x
뒤에 1-4 개의 16 진수 : 해당 코드 포인트가있는 문자.\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.
";
와 같다:
string text="\n \" My string ''stringy'' with lots of ''quoties'' \" said Jimmy ''The Jimminator'' Smith.\n";
또는 아마도 :
string text="\n\t\" My string ''stringy'' with lots of ''quoties'' \" said Jimmy ''The Jimminator'' Smith.\n";
첫 줄 바꿈 뒤에 공백이나 탭을 원했는지 여부가 SO의 마크 업으로 명확하지 않기 때문에.
둘 중 하나는 정확히 동일하지만 ''
SQL을 위해 이스케이프 하는 이유가 있다면 EF에 맡기면 걱정할 필요가 없습니다. 그것으로 당신이 가지고 있는지 여부 :
string text = @"
"" My string 'stringy' with lots of 'quoties' "" said Jimmy 'The Jimminator' Smith.
";
또는:
string text="\n \" My string 'stringy' with lots of 'quoties' \" said Jimmy 'The Jimminator' Smith.\n";
순전히 쓰기와 읽기가 더 쉬운 문제입니다.
일반적으로 대부분의 경우 후자의 형식을 사용하는 것이 좋지만 @
텍스트에 줄 바꿈이 많거나 \
문자 가 많은 경우 (정규식 및 Windows 예를 들어 파일 경로).
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다