应用笔记 · 2023年3月7日

SqlSugar ORM 定义索引等高级功能

1、创建数据

2、创建表

 

3、描述

名称 描述
IsIdentity 是否创建自增标识
IsPrimaryKey 是否创建主键标识
ColumnName 创建数据库字段的名称(默认取实体类属性名称)
ColumnDataType
创建数据库字段的类型

用法1: “varchar(20)” 不需要设置长度

用法2: 不设置该参数 系统会根据C#类型自动生成相应的数据库类型

用法3: “nvarchar(20),text” 多个以逗号隔开 例如 B数据库不支持nvarchar那么会选择text

IsIgnore ORM不处理该列
IsOnlyIgnoreInsert 插入操作时不处理该列
ColumnDescription 备注
Length 长度
IsNullable 是否可以为null默为false
DecimalDigits 精度 如 decimal(18,2) length=18,DecimalDigits=2
OracleSequenceName 设置Oracle序列,设置后该列等同于自增列
OldColumnName 修改列名用,这样不会新增或者删除列
IndexGroupNameList 创建索引用
UniqueGroupNameList 创建唯一索引

4、更多用例

生成实体
1.生成实体到指定目录

db.DbFirst.CreateClassFile(“c:\Demo\1”, “Models”);

2.生成实体并且带有筛选

3.生成带有SqlSugar特性的实体

db.DbFirst.IsCreateAttribute().CreateClassFile(“c:\Demo\5”, “Models”);

4.生成实体带有默认值

db.DbFirst.IsCreateDefaultValue().CreateClassFile(“c:\Demo\6”, “Demo.Models”);

5.重写生成格式(如果还满足不了需求可以使用最下面的自定义Razor模版)

打断点查看old的格式修改后return新的格式

6.格式化类名和属性名

生成的实体如下

8.使用Razor模版

这种方式什么样的格式都可以满足你,你自已写解析格式

ConfigureExternalServices 代码如下:

Nuget需要引用RazorEngine

打包提交
打包提交默认带有事务

注意:一些自定义的sql或者存储过程一起打包可能会不支持

分库分表
注意:数据库连接账号要高级账号

1、动态创建数据库

下面代码将会创建db1和db2数据库

2、动态建表

下面代码将生成生Order1和Order2 两张表

3、实体增、删、查、改

4、跨库联表查询

5、多库切换