3

我运行这个查询:

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

就在我.Add()DbSet.

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

我只是暂时想要这个(用于数据迁移),然后它应该在未来保持自动生成的身份。

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

4

2 回答 2

4

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

于 2011-02-15T09:37:45.380 回答
3

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

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

于 2011-02-15T13:10:30.510 回答