gpt4 book ai didi

c# - Entity Framework 正在替换我的对象的 ID

转载 作者:太空宇宙 更新时间:2023-11-03 19:26:56 25 4
gpt4 key购买 nike

我正在使用 Entity Framework 4.1

我有一个常规对象,我将他的 ID 设置为类似于 123456789(长值)

然后我调用 SaveChanges()

问题是 SaveChanges() 正在更改我在内存和数据库中的 ID它将 ID 分配为 20

如果我重复这个,它会将 id 分配为 21 等等。

什么会导致这种行为?我应该怎么做才能解决它?

身份声明:公共(public)长 ID { get;放;

以前用过,可能之前ID声明为int时用过(改回来检查是否修改过大..)

谢谢

最佳答案

the problem is SaveChanges() is changing my ID both in the memory and inside the database it assign the ID to be 20

数据库中的 ID 列很可能是 Identity column ,所以 Id 是由数据库分配的,而不是由你分配的。如果您真的想自己分配 Id 值,请删除该列的 Identity 属性。

假设您不是先使用代码,而是使用 Sql Server,在 SQL Server Management Studio 中打开表并转到 ID 列的列属性 - 选择“(是身份)- 否”。

enter image description here

编辑:

对于代码优先,您可以使用属性强制使用非身份 key

  [Key, DatabaseGenerated(DatabaseGeneratedOption.None)]

在 ID 属性上。您是否有特定的用例为什么要这样做?通常让数据库处理键的唯一性更容易。

关于c# - Entity Framework 正在替换我的对象的 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7940190/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com