在我的 db 表中,我有一个 PK 列 sessId 的 uniqueidentifier 设置了函数 newid().但是当我插入一条记录时,sessId 生成为 00000000-0000-0000-0000-000000000000.
In my db table i have a PK column sessId of uniqueidentifier set with the function newid(). But when i insert a record the sessId is generated as 00000000-0000-0000-0000-000000000000.
我认为这是一个系统错误,所以我运行 select newid() 它生成了一个新的 id.但是为什么列被插入那些零?
I thought this was a system error so i ran select newid() it generated a new id. but why the column gets inserted with those zeros?
发生的情况是您的 SessId 字段是一个 Guid,它是一个值类型,因此必须有一个默认值并且该值全为零.所以当保存到数据库时,字段上有一个值(全为零)并且不会触发数据库默认值.您可以在使用 Guid.NewGuid() 调用 SaveChanges() 之前给 SessId 一个值,并且不要依赖数据库来执行此操作.或者,如果您可以找到对实体执行此操作的方法,请将字段设为可空的 Guid,以便它以空值到达数据库.
What is happening is that your SessId field is a Guid which is a value type and therefore must have a default value and that value is all zeros. So when save to the database, there is a value on the field (all zeros) and the database default is not triggered.
You can give SessId a value before calling SaveChanges() with Guid.NewGuid() and don't rely on the database to do it.
Or, if you can find a way to do it on your entity, make the field a nullable Guid so that it arrives at the database as null.
这篇关于为什么会话 ID 的性别为“00000000-0000-0000-0000-000000000000"?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持html5模板网!
修改现有小数位信息Modify Existing decimal places info(修改现有小数位信息)
多次指定相关名称“CONVERT"The correlation name #39;CONVERT#39; is specified multiple times(多次指定相关名称“CONVERT)
T-SQL 左连接不返回空列T-SQL left join not returning null columns(T-SQL 左连接不返回空列)
从逗号或管道运算符字符串中删除重复项remove duplicates from comma or pipeline operator string(从逗号或管道运算符字符串中删除重复项)
将迭代查询更改为基于关系集的查询Change an iterative query to a relational set-based query(将迭代查询更改为基于关系集的查询)
将零连接到 sql server 选择值仍然显示 4 位而不是concatenate a zero onto sql server select value shows 4 digits still and not 5(将零连接到 sql server 选择值仍然显示 4 位而不是 5)