通过Linq to entities将主键值赋给新实体时产生混淆



当我使用从我已经在SQL Server中创建的数据库生成的模型在EF中创建新实体时,显然我可以选择在声明新实体的同时在代码中设置实体的ID(主键)。

例如,当我在代码中创建一个'Value'表的新实例时,如下所示:

Value newValue = Value.CreateValue(int valID);

我传入一个数字,比如12给valID:

Value newValue = Value.CreateValue(12);

但是当我检查SQL Server中的值表的数据时,新实体的主键值valID被分配给12以外的东西,例如7。为什么会发生这种情况?

检查数据库中的主键是否设置为AUTONUMBER(在Enterprise Manager中转到表的设计模式并检查列属性)。这意味着数据库将忽略您传递的任何值,并自己生成主键。

最新更新