IDENTITY_INSERT ON不被实体框架DBSet.Add方法所尊重

问题描述 投票:3回答:2

我运行此查询:

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

就在我从.Add()执行DbSet方法之前。

我的数据仍在使用标识值而不是我提供的ID。

我只是暂时想要这个(用于数据迁移),以后它应该保留为自动生成的身份。

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

entity-framework ef-code-first entity-framework-4 sql-server-ce
2个回答
3
投票

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

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


4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.