IDENTITY_INSERT ON未被Entity Framework DBSet.Add方法所遵守

时间:2011-02-15 00:51:24

标签: entity-framework entity-framework-4 ef-code-first

context.Database.SqlCommand("SET IDENTITY_INSERT [Songs] ON;");

在我执行Add方法(DbSet中的Add方法)之前。

我的数据仍然使用身份值而不是我提供的ID。

我只想暂时(对于数据迁移),然后它将来会保持自动生成的身份。

我正在使用SQL CE 4作为我的数据库。

2 个答案:

答案 0 :(得分:4)

这可能是个问题。 DbContext处理数据库连接本身。只有在打开标识插入的同一连接上执行插入时,此方法才有效。我认为它会在此命令后释放连接。您可以尝试使用不同的DbContext构造函数并传递您自己打开的DbConnection实例并自行处理它的结束。

答案 1 :(得分:3)

EF无法猜测您是否已执行IDENTITY_SET命令并相应地更改其内部逻辑。

如果您需要插入特定的Id值,也可以使用SqlCommand进行插入。