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 批量導入數據

系列文章導航


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM