一尘不染

SQL Server 2008 GUID列全为0

sql

我希望这是我最后做的一件简单的事…

我在数据库中建立了一个表,如下所示:

列名称:widget_guid
数据类型:uniqueidentifier
允许为空:false
默认值:newid()
身份:假
行guid:true

当创建记录(通过LINQ to SQL)时,该字段中的值被格式化为GUID,但包含全0

我的假设是,当创建新记录时,将为该列自动生成一个guid,就像自动递增的行ID一样。这不是真的吗?任何帮助将不胜感激。

谢谢。


阅读 163

收藏
2021-03-08

共1个答案

一尘不染

您需要在GUID列上检查属性-您需要确保的是:

  • Auto Generated Values设置为True(因此您基本上告诉Linq-to-SQL数据库将生成该值)

  • Auto-Sync应该设置为,OnInsert以便在调用后用新值填充C#对象context.SubmitChanges()

使用这两个设置,您应该获得预期的行为:无需在客户端上设置GUID,数据库将生成一个新值并将其插入,并在调用完之后立即将其取回。
.SubmitChanges()

替代文字

2021-03-08