0

我有一个带有两个 guid 字段的(旧版)表。第二个 guid 字段可以为空,但我想使用 linq to sql 在插入时自动生成一个非重复的 guid。我将自动同步设置为“OnInsert”并将自动生成值设置为 True。但是由于某种原因,当将记录放入数据库时​​,它不会自动生成/插入 guid 值。我想我可以循环生成 guid,直到找到一个不在数据库中的 guid,然后将其添加进去,但这似乎不太优雅。我确信使用 linq to sql 有更好的方法来做到这一点。关于如何做到这一点的任何建议?是否因为可空属性设置为 T 而没有制作 guid?

在此处输入图像描述

我之前遇到过类似的问题,但是学会了如何更改 ID 字段的属性,以便 linq to sql 可以添加 guid如何防止 Linq 添加 GUID 以便 SQL 服务器可以做到这一点?我不能在这里使用该解决方案,因为这种情况下的 guid 可以为空并且不是 PK,因此我无法像在链接问题中那样更改属性。

4

1 回答 1

2

我想我可以循环生成指南,直到找到不在数据库中的指南...

如果您使用Guid.NewGuid()生成 GUID,则永远不应生成两个相同的 GUID。如果发生这种情况,您将赢得绝对难以置信的赔率。可以安全地假设这Guid.NewGuid()将返回一个地球上没有人以前生成过的 GUID。

于 2012-08-02T05:24:12.363 回答