如何在 SQL Server CE 的实体框架中插入具有静态 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我收到错误

错误语句插入

我正在尝试通过GO将sql变量中的所有命令分开 - 我知道SQL Server CE不能分成多个SqlCommand

但是我得到了像"错误语句GO"这样的错误。

有什么想法吗?

SQL Server Compact 只允许每个命令有一个语句,因此您必须对 ExecuteSqlCommand 使用多个调用,每个 INSERT 语句一个。

最新更新