SQL Server 2008 GUID列全为0

And*_*ans 3 sql guid sql-server-2008 linq-to-sql

我希望这是我在最后做的一个简单的蠢事......

我的数据库中有一个表设置如下:

column name: widget_guid
data type: uniqueidentifier
allow nulls: false
default value: newid()
identity: false
row guid: true

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

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

谢谢.

mar*_*c_s 7

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

  • Auto Generated Values设置为True(所以你基本上告诉Linq-to-SQL数据库将生成值)

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

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

替代文字