我应该如何处理在 Linq / Entity Framework 中维护新记录的行标识?

发布于 2024-10-14 19:14:22 字数 150 浏览 9 评论 0原文

在 SQL 中使用 Linq 和 EF 时创建新的唯一共享密钥的正确方法是什么?

我可以在插入记录时使用 GUID,但我只希望我的密钥中包含 7 个数字或字符,因为它们将出现在我的 MVC 应用程序的 URL 中。如果这不是一个选项,或者使用 GUID 更好,请告诉我。

What is the proper way to create a new unique shared key when using Linq and EF with SQL?

I could use a GUID upon inserting the record but I only want want my keys to have 7 digits or characters in it as they will appear in the URL of my MVC application. If this isn't an option, or it's just better with GUID's let me know.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

窗影残 2024-10-21 19:14:22

如果您不需要跨机器边界的唯一密钥,那么我只需使用自动递增 1 的 bigint/identity(这是默认值)。使用 EF 添加新实体时不必指定身份,它将自动分配。一旦分配完毕,您就可以将其用作 FK。

在我看来,GUID 仅在这种情况下有用,如果您必须保证密钥在多个数据库中是唯一的,即您在一台计算机 (A) 上创建密钥并希望将数据传输到另一台计算机机 (B),保留钥匙。对于 bigint 键来说这是不可能的,因为机器 B 可能已经插入了具有相同键的其他数据。

If you do not need a unique key across machine boundaries then I would just go with a bigint/idenity that auto-increments by 1 (which is the default). You do not have to specify the identity when adding a new entity with EF, it will be auto-assigned. Once it has been assigned you can then use it as a FK.

In my opinion GUIDs are only useful in this context if you have to guarantee that the key is unique across multiple databases, i.e. you create they key on one machine (A) and want to transfer the data to another machine (B), retaining the key. This is not possible with bigint keys since machine B might have inserted other data with the same key already.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文