C# 尝试将0或1插入位类型列时发生迁移报告错误

C# 尝试将0或1插入位类型列时发生迁移报告错误,c#,mysql,sql,asp.net,entity-framework,C#,Mysql,Sql,Asp.net,Entity Framework,我试图在迁移类中使用insert into语句,一旦我尝试更新数据库,我就会收到一个错误,说“解析查询时出错” [令牌行编号=1,令牌行偏移量=132,令牌出错=0] “Deleted”是位类型,不是空列,所以我需要传递0或1,但它会报告错误。我还尝试传递“true”/“false”和“0”/“1”,但仍然不起作用。我该通过什么才能使这句话起作用呢 编辑: 现在,我开始 分析查询时出错。[令牌行编号=1,令牌行偏移量=89,令牌出错=t] edit2: 我部分地找到了错误的原因。这是因为我有多个

我试图在迁移类中使用insert into语句,一旦我尝试更新数据库,我就会收到一个错误,说“解析查询时出错”

[令牌行编号=1,令牌行偏移量=132,令牌出错=0]

“Deleted”是位类型,不是空列,所以我需要传递0或1,但它会报告错误。我还尝试传递“true”/“false”和“0”/“1”,但仍然不起作用。我该通过什么才能使这句话起作用呢

编辑: 现在,我开始

分析查询时出错。[令牌行编号=1,令牌行偏移量=89,令牌出错=t]

edit2:

我部分地找到了错误的原因。这是因为我有多个这样的Sql语句

public override void Up()
{
    Sql("INSERT INTO Movies (UniqueID, Title, Actor, Genre, Deleted) VALUES ('1234567890123', 'Movie', 'John Smith', 'SciFi', 0 ");
    Sql("INSERT INTO Movies (UniqueID, Title, Actor, Genre, Deleted) VALUES ('1234634534745', 'Movie2', 'Mike Johnson', 'SciFi', 0 ");
    Sql("INSERT INTO Movies (UniqueID, Title, Actor, Genre, Deleted) VALUES ('1234567890343', 'Movie3', 'George Smith', 'SciFi', 0 ");
}
但我不知道这有什么关系,当我跟随的讲师在创建数据库时通过了多行这样的语句,而且对他来说效果很好

edit3


我将一个接一个地使用它。

您缺少
VALUES()
的右括号,请将其更改为有右括号,它应该可以工作:

 VALUES ('1234567890123', 'Movie', 'John Smith', 'SciFi', 0)");
                                                           ^
                                                           |
                                                           | here
更好的方法是将变量放入查询中,然后向下使用该变量,以避免被括号混淆,还可以使用将其拆分为多行,以便更具可读性,并有助于轻松找到任何语法错误:

public override void Up()
{
    var query = @"INSERT INTO Movies (UniqueID, Title, Actor, Genre, Deleted) 
                              VALUES ('1234567890123', 'Movie', 'John Smith', 'SciFi', 0)";
    Sql(query);
}
旁注:
始终通过测试sql语句的执行位置来仔细检查sql语句,然后将它们放入代码中以避免此类问题。

非常感谢,这解决了0的问题,但不幸的是,现在我收到了几乎相同的错误,但声明“解析查询时出错”。[Token line number=1,Token line offset=89,Token in error=t]“请通过编辑iTedid OP在您的问题中添加详细的错误消息。这就是我得到的所有信息。现在它显示的是t而不是0。请尝试将表和列名用方括号括起来,如:
[Movies]
[UniqueID],[Title],[Actor]
等等下面的帖子可能也会有所帮助:
public override void Up()
{
    var query = @"INSERT INTO Movies (UniqueID, Title, Actor, Genre, Deleted) 
                              VALUES ('1234567890123', 'Movie', 'John Smith', 'SciFi', 0)";
    Sql(query);
}