ITXP365(智码IT网)

分享电脑知识,传播IT技巧

致敬爱学习的您,祝您访问愉快!

orm框架SqlSugar入门5 CodeFirst基础 创建数据库和表


发布:智码IT网   阅读:
CodeFirst的意思为先有model代码,根据model实体创建数据库对象。

本示例代码用到的ConnectionConfig如下:
    public class MyConnConfig
    {
        public static ConnectionConfig connectionConfig = new ConnectionConfig()
        {
            ConnectionString = @"Data Source=.\sql2008;Initial Catalog=test;Persist Security Info=True;User ID=sa;Password=test666",
            IsAutoCloseConnection = true,
            DbType = SqlSugar.DbType.SqlServer
        };

        public static ConnectionConfig connectionConfig2 = new ConnectionConfig()
        { 
            ConnectionString = @"Data Source=.\sql2008;Initial Catalog=test2;Persist Security Info=True;User ID=sa;Password=test666",
            IsAutoCloseConnection =true,
            DbType =DbType.SqlServer
        };
    }

1、CreateDatabase():创建数据库

        //创建数据库 CreateDatabase()  
        private void button1_Click(object sender, EventArgs e)
        {
            using (SqlSugarClient db=new SqlSugarClient(MyConnConfig.connectionConfig2))
            {
                db.DbMaintenance.CreateDatabase();
                /*
                 注意:
                    1、没有数据库,才创建。
                    2、Oracle等数据不支持该方法,需要手工建库
                 */
            }
        }

2、InitTables():根据数据库实体类,创建数据库表
2.1 实体类Student的代码如下:

//这里的内容出现在类文件顶部
using System;
using System.Linq;
using System.Text;

using SqlSugar; //这行是代码生成的,追加到using列表的末尾处
namespace Models
{
    ///<summary>
    ///学生表
    ///</summary>
    public partial class Student
    {
           public Student(){


           }
           /// <summary>
           /// Desc:主键ID
           /// Default:
           /// Nullable:False
           /// </summary>这里的内容出现在xml注释结尾处           
       [SugarColumn(IsPrimaryKey=true,IsIdentity=true)]
           public int ID {get;set;}

           /// <summary>
           /// Desc:学生姓名
           /// Default:
           /// Nullable:True
           /// </summary>这里的内容出现在xml注释结尾处           
           public string Name {get;set;}

           /// <summary>
           /// Desc:年龄
           /// Default:18
           /// Nullable:True
           /// </summary>这里的内容出现在xml注释结尾处           
           public int? Age {get;set;}

    }
}
//这里的内容将出现的类文件的结尾

2.2 根据Models.Student实体类,创建数据库表Student
db.CodeFirst.InitTables(typeof(Models.Student));

生成的数据表如图所示:

默认生成的varchar长度为255,以下示例代码演示修改默认varchar的长度为200
                db.CodeFirst
                    .SetStringDefaultLength(200)
                    .InitTables(typeof(Models.Student));

注意:如果表已经存在了,则InitTables()会再次创建表操作,实验发现,即便表里面有数据,执行InitTables()操作后,数据仍然存在。



上一篇:没有了
下一篇:没有了

© 2001-智码IT网 www.itxp365.com版权所有

蜀ICP备2021001527号