无法在表格中列出标识列的显式值'业务'当IDENTITY_INSERT设置为OFF时

时间:2017-05-23 20:02:43

标签: sql asp.net

我创建了一个空迁移并将此代码添加到其中:

public override void Up()         {

        Sql("INSERT INTO Businesses (Id, Field) VALUES (1, 'Restaurant')");
        Sql("INSERT INTO Businesses (Id, Field) VALUES (2, 'FastFood')");
        Sql("INSERT INTO Businesses (Id, Field) VALUES (3, 'Breakfast')");
        Sql("INSERT INTO Businesses (Id, Field) VALUES (4, 'Bar')");

    }

    public override void Down()
    {

        Sql("DELETE FROM Businesses WHERE Id IN (1, 2, 3, 4)");

    }

填充字段表。但是当我想更新数据库时,我收到了这个错误:

无法在表格中列出标识列的显式值'业务'当IDENTITY_INSERT设置为OFF时。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

您的数据库已设置为插入并自动增加您的Id列。只需省略SQL查询中的列。

INSERT INTO Businesses (Field) VALUES ('Restaurant')
INSERT INTO Businesses (Field) VALUES ('FastFood')
INSERT INTO Businesses (Field) VALUES ('Breakfast')
INSERT INTO Businesses (Field) VALUES ('Bar')

我稍后会看到你打算删除插入的行。您可能希望使用where语句执行更复杂的操作,因为Id字段不能保证为1,2,3和4。