migrationBuilder中的SQL关键字附近的语法不正确

时间:2017-07-30 10:09:46

标签: sql entity-framework .net-core ef-migrations

通常,我可以在这里找到答案,但我得到的错误并不足以让我自己弄明白,除了必须有某种错字这一事实。老实说,我不知道这是什么错字。我希望有人可以提供帮助。

我正在使用.NET Core& EntityFramework(对我来说还是新手)。我创建了几个迁移:'initial'& “填充”。 'populate'是一个空的迁移,我打算用它来播种。

protected override void Up(MigrationBuilder migrationBuilder)
{
    foreach (var job in GetAllJobs().OrderBy(x => x.Id))
            migrationBuilder.Sql("INSERT INTO Jobs (Id, Code, Name, Role, Type, Group) " +
                                 "VALUES ('" + job.Id + "', '" + job.Code + "', '" + job.Name + "', '" + job.Role + "', '" + job.Type + "', '" + job.Group + "');");
}

出于某种原因,当从命令行运行 dotnet ef数据库更新时,它会抛出上述错误:“关键字'Group'附近的语法不正确”,但我真的不明白为什么。

http://i.imgur.com/it5rP5P.png

我尝试在SQL语句的末尾省略分号,但这会导致相同的错误。我真的不知道SQL语句可能出现什么问题:(

非常感谢任何帮助。

SOLUTION:

protected override void Up(MigrationBuilder migrationBuilder)
{
    foreach (var job in GetAllJobs().OrderBy(x => x.Id))
            migrationBuilder.Sql("INSERT INTO Jobs (Id, Code, Name, Role, Type, [Group]) " +
                                 "VALUES ('" + job.Id + "', '" + job.Code + "', '" + job.Name + "', '" + job.Role + "', '" + job.Type + "', '" + job.Group + "');");
}

1 个答案:

答案 0 :(得分:2)

将括号括在标识符周围,GROUP是保留字