当前位置: 首页 > 网络应用技术

基于SQLSUGAR(4)的开发框架的站点介绍 - 数据访问基类中GUID主键的自动分配处理

时间:2023-03-08 20:49:43 网络应用技术

  当我们设计数据库表时,我们经常使用字符串类型或GUID类型来方便数据库表。这对于数据库表记录的迁移非常方便,有时在处理关联记录时会提前提前的ID值。但是有时在插入数据记录时,他们通常会忽略ID.ID的分配。允许自动分配,我们可以自动分配数据访问基类中的GUID主键。

  当我们设计基于SQLSUGAR的框架时,物理类定义了基类实体,如以下代码所示。

  通常,它可以扩展弦,整形手术和其他类型的物理类别。

  默认实体定义为整形手术,如下所示。不需要插入长大的主要钥匙。记录时,它将获得相应的ID值。

  对于字符类型ID键,可以在构造函数中初始化ID。

  或当我们插入新记录时,我们会判断主要密钥是空的,然后为其分配一个值,还是唯一的GUID值。

  使用Guid.NewGuid()处理。这个优势是您可以获得独特的指导值,缺点是ID是无序的,没有秩序,对ID的ID毫无意义。

  为了解决此问题,我们仍然介绍ABP VNEXT的规则以生成有序的GUID值。同时,当数据库访问基类时,当插入记录和更新记录时)是否为空,将其分配给空的guid,可以完美地解决问题。

  这样,当我们定义物理类时,就无法初始化ID值,从而使其保持空白,从而使用户可以主动设置值或自动基础类处理分配。

  对于GUID或字符串类型的ID值,为什么要设置有序的GUID,您可以参考链接:/GUID-HANS /GUID-HAGUID-HAGUID-HANS /GUID /GUID /GUID /GUID /GUID /GUID /GUINGUIN-HAN-HAN-HAN'S

  在正常情况下,当我们使用SQLSUGAR插入新记录时,这是以下代码

  为了确定ID是否为空,我们需要判断ID类型,并确定字符串类型还是GUID类型。如果它是空的,它将自动分配。因此,如以下代码所示,我们可以在插入之前进行判断处理。

  其中,SetIdForGuids是获得有序的GUID值的函数。

  根据不同的数据库特性,构建不同的GUID值。如果是字符串的ID,我们将均匀地使用sequeentialAsstring方法。这也是字符串的常规排序,因此我们不仅获得了非重复的GUID值,而且您可以对ID进行排序,而ID是按顺序排序的。

  添加用于测试的几种字典类型(字符串ID)的记录。

  您可以看到,ID的类型前缀部分是相同的,并且以后的ID中以正顺序排序的更改是根据写作时间的顺序处理的。

  原始:https://juejin.cn/post/7098544910780858375