SqlSugar学习笔记五——CodeFrist通过反射创建表

  • 三种方式
ConnectionConfig config = new ConnectionConfig()
{
    ConnectionString = "Data Source=DESKTOP-VF73RDU;Initial Catalog=CustomerDBCodeFirst;Persist Security Info=True;User ID=sa;Password=sa123",
    DbType = DbType.SqlServer,
    IsAutoCloseConnection = true
};

using (SqlSugarClient db = new SqlSugarClient(config))
{

    //如果不存在创建数据库
    db.DbMaintenance.CreateDatabase(); //个别数据库不支持

    //语法一:
    Type[] types = Assembly
        .LoadFrom("Zhaoxi.DemoModels.dll")//如果 .dll报错,可以换成 xxx.exe 有些生成的是exe 
        .GetTypes()//命名空间过滤,当然你也可以写其他条件过滤
        .ToArray();//断点调试一下是不是需要的Type,不是需要的在进行过滤

    db.CodeFirst.SetStringDefaultLength(200).InitTables(types);//根据types创建表

    //语法二:                
    Type[] types1 = typeof(任意实体类中的类).Assembly.GetTypes()
        .Where(it => it.FullName.Contains("OrmTest."))//命名空间过滤,当然你也可以写其他条件过滤
        .ToArray();
    db.CodeFirst.SetStringDefaultLength(200).InitTables(types1);//根据types创建表


    //语法三:
    //通过反射,指定哪些类来生成数据库  
    Assembly assembly = Assembly.LoadFrom("SqlSugarDemo.Models.dll");
    IEnumerable<Type> typelist = assembly.GetTypes().Where(c => c.Namespace == "SqlSugarDemo.Models");
    //是否备份数据库
    bool Backup = false;

    if (Backup)
    {
        db.CodeFirst.BackupTable().InitTables(typelist.ToArray());
    }
    else
    {
        db.CodeFirst.InitTables(typelist.ToArray());
    }
posted @ 2022-07-10 21:34  码农阿亮  阅读(1007)  评论(1编辑  收藏  举报