context.Database.SqlCommand("SET IDENTITY_INSERT [Songs] ON;");
在我执行Add方法(DbSet中的Add方法)之前。
我的数据仍然使用身份值而不是我提供的ID。
我只想暂时(对于数据迁移),然后它将来会保持自动生成的身份。
我正在使用SQL CE 4作为我的数据库。
答案 0 :(得分:4)
这可能是个问题。 DbContext
处理数据库连接本身。只有在打开标识插入的同一连接上执行插入时,此方法才有效。我认为它会在此命令后释放连接。您可以尝试使用不同的DbContext构造函数并传递您自己打开的DbConnection
实例并自行处理它的结束。
答案 1 :(得分:3)
EF无法猜测您是否已执行IDENTITY_SET命令并相应地更改其内部逻辑。
如果您需要插入特定的Id值,也可以使用SqlCommand进行插入。