SqlSugar 代码生成 数据库及表
阅读原文时间:2023年07月09日阅读:1

在实际开发中如何在sqlsugar中通过model生成数据表呢?

废话不说上代码

一、引入sqlsugarcore

二、编写Model代码

先写一个model举例

namespace 用户管理.Models
{
public class Module
{
[SugarColumn(ColumnDataType = "varchar(80)" ,IsPrimaryKey =true)]
public string ModuleID { get; set; }

    \[SugarColumn(ColumnDataType = "varchar(20)")\]  
    public string ModuleName { get; set; }  
    \[SugarColumn(ColumnDataType = "varchar(80)")\]  
    public string ParentID { get; set; }  
    \[SugarColumn(ColumnDataType = "varchar(300)")\]  
    public string URL { get; set; }

}  

}

三、配置 sqlsugar

新建一个类DB代码如下:

namespace 用户管理.MysqlService
{
public class DB
{
//配置数据连接串确保mysql能工作 UserManage数据库此时并不存在
public static string DB_ConnectionString = "Database=UserManage;Data Source = localhost; User Id = root; Password=root;CharSet=utf8;port=3306;Pooling=true;";
public static string DB_SqlserverConnectionString { get; set; }
public static SqlSugarClient db
{
get => new SqlSugarClient(new ConnectionConfig()
{
ConnectionString = DB_ConnectionString,
DbType = DbType.MySql,
IsAutoCloseConnection = true,
// InitKeyType = InitKeyType.SystemTable, //已建立数据库和表配置此属性
// IsShardSameThread = true
InitKeyType = InitKeyType.Attribute // 一定要配置此属性 ,否则生成数据库会报错
}

        );

    }

    public static void createDB()  
    {  
        db.DbMaintenance.CreateDatabase(); //创建数据库

        db.CodeFirst.InitTables(  
            typeof(用户管理.Models.Module),  
            typeof(用户管理.Models.ModuleRoleMapping ),  
            typeof(用户管理.Models.Role ),  
            typeof(用户管理.Models.User ));

    }

}  

}

以上代码 调用 SqlSugarClient 的CodeFirst.InitTables 方法创建表

四、在HomeController中调用 createDB 创建数据库和表

namespace 用户管理.Controllers
{
public class HomeController : Controller
{
public IActionResult Index()
{
DB.createDB();
return View();
}

}  

}

文件视图如下:

运行代码打开 Navicat 检查数据库和表创建情况

可以看到数据库和表都创建完毕了!

end!