수동 마이그레이션에서 새 테이블을 채우려고합니다.SQL Server CE 용 Entity Framework에서 정적 ID를 사용하여 값을 삽입하는 방법은 무엇입니까?
테이블을 만들었지 만 삽입하는 데 문제가 있습니다.
var sql = @"CREATE TABLE[DefaultSettings] ([Id] int IDENTITY (1, 1) NOT NULL
, [Tag] nvarchar(63) NOT NULL
, [ValueInt] int NULL
, [ValueDate] datetime NULL
, [ValueChar] nvarchar(255) NULL);";
dbContext.Database.ExecuteSqlCommand(sql);
sql = @"ALTER TABLE[DefaultSettings] ADD CONSTRAINT[PK_DefaultSettings] PRIMARY KEY ([Id])";
dbContext.Database.ExecuteSqlCommand(sql);
sql = @"SET IDENTITY_INSERT [DefaultSettings] ON;
INSERT INTO [DefaultSettings] ([Id], [Tag], [ValueInt], [ValueDate],[ValueChar]) VALUES (1, N'DefaultArea', 58, NULL, NULL);
INSERT INTO [DefaultSettings] ([Id], [Tag], [ValueInt], [ValueDate],[ValueChar]) VALUES (2, N'DefaultFarm', 52, NULL, NULL);
GO";
dbContext.Database.ExecuteSqlCommand(sql);
return;
두 번째 ExecuteSqlCommand
위해 나는 오류가
Error 문은 내가 GO하여 SQL 변수의 모든 명령은 별도의 시도입니다
삽입 얻을 - 내가 아는을 그 SQL 서버 CE 할 수없는 여러 SqlCommand
로 .
하지만 "오류 진술 문"과 같은 오류가 나타납니다.
아이디어가 있으십니까?
CONSTRAINT와 [DefaultSettings]간에 TABLE과 [DefaultSettings] 사이에 공백을 추가하기 시작합니다. 코드에서이를 실행하면 GO는 의미가 없습니다. 그것은 단지 명령 사이의 분리 자로 SQL 서버 관리 스튜디오의 IDE로 이해됩니다 – Steve
공백은 중요하지 않습니다 ... 그래서,'sql = @ "SET IDENTITY_INSERT [DefaultSettings] ON; INSERT INTO [DefaultSettings] ([Id ([ID], [태그], [태그], [태그], [태그], [태그], [값], [값], [값], [ValueChar]) VALUES (1, N'DefaultArea ', 58, NULL, NULL)";'got '쿼리를 구문 분석하는 동안 오류가 발생했습니다. [토큰 라인 번호 = 2, 토큰 라인 오프셋 = 1, 토큰 오류 = INSERT]' – Tres
그런 다음 세 번째 ExecuteSqlCommand에 오류가 있습니까? 그런 다음 3 개의 별도 명령으로 명령을 분할해야하며 삽입 후 IDENTITY_INSERT를 OFF로 설정하는 것을 잊지 마십시오. – Steve