细胞de理想

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

常用的映射方式有两种: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的表。

posted on 2022-04-27 11:07  细胞的理想  阅读(1078)  评论(0编辑  收藏  举报