我希望这是我最后做的一件简单的事…
我在数据库中建立了一个表,如下所示:
列名称:widget_guid 数据类型:uniqueidentifier 允许为空:false 默认值:newid() 身份:假 行guid:true
当创建记录(通过LINQ to SQL)时,该字段中的值被格式化为GUID,但包含全0
我的假设是,当创建新记录时,将为该列自动生成一个guid,就像自动递增的行ID一样。这不是真的吗?任何帮助将不胜感激。
谢谢。
您需要在GUID列上检查属性-您需要确保的是:
Auto Generated Values设置为True(因此您基本上告诉Linq-to-SQL数据库将生成该值)
Auto Generated Values
True
Auto-Sync应该设置为,OnInsert以便在调用后用新值填充C#对象context.SubmitChanges()
Auto-Sync
OnInsert
context.SubmitChanges()
使用这两个设置,您应该获得预期的行为:无需在客户端上设置GUID,数据库将生成一个新值并将其插入,并在调用完之后立即将其取回。 .SubmitChanges()
.SubmitChanges()