通常,我可以在这里找到答案,但我得到的错误并不足以让我自己弄明白,除了必须有某种错字这一事实。老实说,我不知道这是什么错字。我希望有人可以提供帮助。
我正在使用.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 + "');");
}
答案 0 :(得分:2)
将括号括在标识符周围,GROUP是保留字