为什么会话 ID 的性别为“00000000-0000-0000-0000-000000000000”?

why session id is gendered as '00000000-0000-0000-0000-000000000000'?

在我的 db table 中,我有 uniqueidentifierPKsessId 设置了函数 newid()。但是当我插入一条记录时,sessId 生成为 00000000-0000-0000-0000-000000000000

我认为这是一个系统错误,所以我 运行 select newid() 它生成了一个新的 id。但为什么该列会插入那些 zeros?

发生的情况是您的 SessId 字段是一个 Guid,它是一种值类型,因此必须具有默认值并且该值全为零。因此,当保存到数据库时,字段上有一个值(全为零)并且不会触发数据库默认值。 您可以在使用 Guid.NewGuid() 调用 SaveChanges() 之前给 SessId 一个值,并且不要依赖数据库来执行此操作。 或者,如果您能找到在您的实体上执行此操作的方法,请将该字段设置为可为空的 Guid,以便它作为空值到达数据库。