Code First

注意:数据库账号需要有比较高的权限


1、创建数据

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



2、创建表

public class CodeFirstTable1
{
        [SugarColumn(IsIdentity = true, IsPrimaryKey = true)]
        public int Id { get; set; }
        public string Name { get; set; }
        [SugarColumn(ColumnDataType = "Nvarchar(255)")]//自定格式的情况 length不要设置
        public string Text { get; set; }
        [SugarColumn(IsNullable = true)]
        public DateTime CreateTime { get; set; }
}
db.CodeFirst.SetStringDefaultLength(200).InitTables(typeof(CodeFirstTable1));//这样一个表就能成功创建了



3、一实体创建多张一样结构的表

http://www.codeisbug.com/Home/Doc?typeId=1201




4、描述

名称描述
IsIdentity是否创建自增标识
IsPrimaryKey是否创建主键标识
ColumnName创建数据库字段的名称(默认取实体类属性名称)
ColumnDataType

创建数据库字段的类型

用法1: “varchar(20)” 不需要设置长度

用法2:      不设置该参数   系统会根据C#类型自动生成相应的数据库类型 

用法3:     "nvarchar(20),text"  多个以逗号隔开 例如 B数据库不支持nvarchar那么会选择text

IsIgnoreORM不处理该列
IsOnlyIgnoreInsert插入操作时不处理该列
ColumnDescription备注
Length长度
IsNullable是否可以为null默为false
DecimalDigits精度 如 decimal(18,2) length=18,DecimalDigits=2
OracleSequenceName设置Oracle序列,设置后该列等同于自增列
OldColumnName修改列名用,这样不会新增或者删除列
IndexGroupNameList创建索引用

 

5、更多用例


修改列

[SugarColumn( OldColumnName ="Name")]
public string  NewName { get; set; }


创建索引

[SqlSugar.SugarColumn(IndexGroupNameList = new string[] { "index1" })]
public int V1 { get; set; }
[SqlSugar.SugarColumn(IndexGroupNameList =new string[] { "index1" } )]
public DateTime? V2 { get; set; }


添加表描述

db.CodeFirst.InitTables(typeof(CodeFirstTable));
[SugarTable("CodeFirstTable2",TableDescription = "TableDescription")]
public class CodeFirstTable
{
   [SugarColumn(IsPrimaryKey = true)]
   public Guid Id { get; set; }
}