微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在C#中创建Guid键与DB之间的区别

我们使用Guids作为数据库中实体的主键.传统上,我们遵循一种让数据库在INSERT期间设置实体的ID的模式,我认为主要是因为这通常是使用自动增量字段或其他方式来处理事物的方式.

我越来越多地发现,在对象构造期间,在代码中进行密钥分配是很有帮助的,主要有两个原因:

>你知道,一旦一个对象的构造函数运行,它的所有字段都被初始化了.你没有“半烤”的对象踢.
>如果您需要执行一批操作,其中一些操作取决于知道对象的密钥,您可以一次完成所有操作,而无需往返数据库.

有没有什么令人信服的理由不这样做?也就是说,当使用Guid作为键时,是否有很好的理由将密钥分配留给数据库

编辑:
很多人对于是否应该用PK来(我知道的)是否有强烈的意见,但这并不是我问题的重点.

除了集群问题(如果您正确设置索引似乎不是问题),我还没有看到一个引人注目的理由,以避免在应用程序层中创建密钥.

解决方法

我认为你在客户端创建它们是很好的.正如你所说,如果你让数据库做到这一点,你必须找到一些方法(不能想到任何真正的)来获得该密钥.如果您正在使用身份,那么您可以使用呼叫来获取为表创建的最新的呼叫,但是我不确定这是否存在于guid.

原文地址:https://www.jb51.cc/csharp/92124.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐