为什么会话 ID 的性别为“00000000-0000-0000-0000-000000000000”?
why session id is gendered as '00000000-0000-0000-0000-000000000000'?
在我的 db
table 中,我有 uniqueidentifier
的 PK
列 sessId
设置了函数 newid()
。但是当我插入一条记录时,sessId
生成为 00000000-0000-0000-0000-000000000000
。
我认为这是一个系统错误,所以我 运行 select newid()
它生成了一个新的 id
。但为什么该列会插入那些 zeros?
发生的情况是您的 SessId 字段是一个 Guid,它是一种值类型,因此必须具有默认值并且该值全为零。因此,当保存到数据库时,字段上有一个值(全为零)并且不会触发数据库默认值。
您可以在使用 Guid.NewGuid()
调用 SaveChanges()
之前给 SessId 一个值,并且不要依赖数据库来执行此操作。
或者,如果您能找到在您的实体上执行此操作的方法,请将该字段设置为可为空的 Guid,以便它作为空值到达数据库。
在我的 db
table 中,我有 uniqueidentifier
的 PK
列 sessId
设置了函数 newid()
。但是当我插入一条记录时,sessId
生成为 00000000-0000-0000-0000-000000000000
。
我认为这是一个系统错误,所以我 运行 select newid()
它生成了一个新的 id
。但为什么该列会插入那些 zeros?
发生的情况是您的 SessId 字段是一个 Guid,它是一种值类型,因此必须具有默认值并且该值全为零。因此,当保存到数据库时,字段上有一个值(全为零)并且不会触发数据库默认值。
您可以在使用 Guid.NewGuid()
调用 SaveChanges()
之前给 SessId 一个值,并且不要依赖数据库来执行此操作。
或者,如果您能找到在您的实体上执行此操作的方法,请将该字段设置为可为空的 Guid,以便它作为空值到达数据库。