var connectionString = "Data Source=127.0.0.1;Port=3306;User ID=root;Password=root;" + 
    "Initial Catalog=cccddd;Charset=utf8;SslMode=none;Max pool size=10";static IFreeSql fsql = new FreeSql.FreeSqlBuilder()
    .UseConnectionString(FreeSql.DataType.MySql, connectionString)
    .UseAutoSyncStructure(true) //自动同步实体结构到数据库
    .Build(); //请务必定义成 Singleton 单例模式class Topic {
    [Column(IsIdentity = true, IsPrimary = true)]    public int Id { get; set; }    public int Clicks { get; set; }    public string Title { get; set; }    public DateTime CreateTime { get; set; }
}

插入

fsql.Insert(new Topic { Id = a + 1, Title = $"newtitle0", Clicks = 100 }).ExecuteAffrows();

执行SQL如下:

INSERT INTO `Topic`(`Clicks`, `Title`, `CreateTime`) VALUES(@Clicks0, @Title0, @CreateTime0)

如果表有自增列,插入数据后应该要返回 id。

方法1:(原始)

long id = fsql.Insert(blog).ExecuteIdentity();
blog.Id = id;

方法2:(依赖 FreeSql.Repository)

var repo = fsql.GetRepository<Blog>();
repo.Insert(blog);

内部会将插入后的自增值填充给 blog.Id

API

方法返回值参数描述
CommandTimeout<this>int命令超时设置(秒)
WithTransaction<this>DbTransaction设置事务对象
WithConnection<this>DbConnection设置连接对象
ToSqlstring 返回即将执行的SQL语句
ExecuteAffrowslong 执行SQL语句,返回影响的行数
ExecuteIdentitylong 执行SQL语句,返回自增值
ExecuteInsertedList<T1> 执行SQL语句,返回插入后的记录
ExecuteSqlBulkCopyvoid SqlServer 特有的功能,执行 SqlBulkCopy 批量插入的封装
ExecutePgCopyvoid PostgreSQL 特有的功能,执行 Copy 批量导入数据