常用的映射方式有两种:DbFirst、CodeFirst
DbFirst:数据库优先,先在数据库中建好表,然后去自动生成代码的实体类。
CodeFirst:代码优先,先在代码中定义好实体类,然后自动在数据库生成表结构。
创建一个控制台项目,引用程序集SqlSugarCode
DbFirst实例:
数据库有两张已经建好的表
代码生成,实体类
using SqlSugar; using System; namespace SqlSugarStart.DbFirst { class Program { static void Main(string[] args) { show(); } public static void show() { try { SqlSugarClient sqlSugarClient = new SqlSugarClient(new ConnectionConfig { DbType = DbType.SqlServer,//要连接的数据库类型 ConnectionString = "server=.;uid=sa;pwd=123456;database=SqlSugarTest", InitKeyType = InitKeyType.SystemTable,//初始化主键和自增列信息到orm的方式 }); sqlSugarClient.DbFirst.CreateClassFile(@"D:\Code\杨中科.NetCore\SqlSugarStart\SqlSugarStart.DbFirst\DbModels"); } catch (Exception) { throw; } } } }
在生成的类中可以看到不止两个,这是因为程序自动把数据库中所有的表都生成了,包括系统表。
其实想要的只有自己定义的两张表,那就需要使用where条件,选择要生成的表。例如下面实例代码中写的,只生成表名称以C开头的表。
using SqlSugar; using System; namespace SqlSugarStart.DbFirst { class Program { static void Main(string[] args) { show(); } public static void show() { try { SqlSugarClient sqlSugarClient = new SqlSugarClient(new ConnectionConfig { DbType = DbType.SqlServer,//要连接的数据库类型 ConnectionString = "server=.;uid=sa;pwd=123456;database=SqlSugarTest", InitKeyType = InitKeyType.SystemTable,//初始化主键和自增列信息到orm的方式 }); //sqlSugarClient.DbFirst.CreateClassFile(@"D:\Code\杨中科.NetCore\SqlSugarStart\SqlSugarStart.DbFirst\DbModels"); sqlSugarClient.DbFirst.Where(c => c.StartsWith("C")).CreateClassFile(@"D:\Code\杨中科.NetCore\SqlSugarStart\SqlSugarStart.DbFirst\DbModels"); } catch (Exception) { throw; } } } }
执行结果如下,只有一张表生成了对应实体类。
CodeFirst实例:
定义一个实体类
using SqlSugar; namespace SqlSugarStart.CodeFirst.DbModels { [SugarTable("Student")] public class Student { [SugarColumn(IsPrimaryKey = true, IsIdentity = true)] public int Id { get; set; } public string Name { get; set; } public int age { get; set; } } }
生成数据库和表
using SqlSugar; using SqlSugarStart.CodeFirst.DbModels; using System; namespace SqlSugarStart.CodeFirst { class Program { static void Main(string[] args) { show(); } public static void show() { try { SqlSugarClient sqlSugarClient = new SqlSugarClient(new ConnectionConfig { DbType = DbType.SqlServer,//要连接的数据库类型 ConnectionString = "server=.;uid=sa;pwd=123456;database=SqlSugarCodeFirst",//sqlsqver数据库链接字符串 IsAutoCloseConnection = true }); #region 创建数据库和表的语句仅执行一次 sqlSugarClient.DbMaintenance.CreateDatabase(); //创建数据库 sqlSugarClient.CodeFirst.SetStringDefaultLength(200).InitTables(typeof(Student));//创建表 #endregion } catch (Exception) { throw; } } } }
执行结果:
自动在数据库中创建了名称为SqlSugarCodeFirst的数据库,并创建了名称为Student的表。
在通往幸福道路上,并没有什么捷径可走,唯有付出努力和拼搏