美文网首页.NETdotNET
FreeSql 教程 (五)插入数据

FreeSql 教程 (五)插入数据

作者: 叶先生_34e6 | 来源:发表于2020-03-12 16:15 被阅读0次

    FreeSql 以 MIT 开源协议托管于 github:https://github.com/2881099/FreeSql

    var connstr = "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, connstr)
        .UseAutoSyncStructure(true) //自动同步实体结构到数据库
        .Build();  //请务必定义成 Singleton 单例模式
    
    [Table(Name = "tb_topic")]
    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 `tb_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

    方法 返回值 参数 描述
    ToSql string 返回即将执行的SQL语句
    ExecuteAffrows long 执行SQL语句,返回影响的行数
    ExecuteIdentity long 执行SQL语句,返回自增值
    ExecuteInserted List<T1> 执行SQL语句,返回插入后的记录
    ExecuteSqlBulkCopy void SqlServer 特有的功能,执行 SqlBulkCopy 批量插入的封装
    ExecutePgCopy void PostgreSQL 特有的功能,执行 Copy 批量导入数据

    系列文章导航

    相关文章

      网友评论

        本文标题:FreeSql 教程 (五)插入数据

        本文链接:https://www.haomeiwen.com/subject/tndudhtx.html