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.这不是真的吗?任何帮助将不胜感激.
谢谢.
您需要在GUID列上检查您的属性 - 您需要确保:
Auto Generated Values设置为True(所以你基本上告诉Linq-to-SQL数据库将生成值)
Auto-Sync应设置为OnInsert在调用后使用新值填充C#对象context.SubmitChanges()
使用这两个设置,您应该获得预期的行为:无需在客户端设置GUID,数据库将生成一个新值并插入它,并且您将在调用之后立即将其恢复 .SubmitChanges()
