FreeSql學習筆記 6 修改

2022-10-11 12:03:10 字數 2783 閱讀 6305

前言

freesql 提供豐富的資料庫更新功能,支援單條或批量更新,支援更新指定的字段,在特定的資料庫執行還可以返回更新後的記錄。與刪除一樣,沒有條件的話不會執行,避免全表修改到全表;

_freesql.update(1)

.set(x=>x.name,"1111")

.executeaffrows();

//update [student] set [name] = @p_0 where([id] = 1)

更新很像直接寫sql語句啊,直接使用主鍵更新,主鍵傳入在update()作為引數,賦值在set()中;

_freesql.update()

.set(x => x.name, "zz")

.where(x => x.id > 10)

.executeaffrows();

//update [student] set [name] = @p_0 where([id] > 10)

實體更新將值修改後傳入update()中,實現修改,修改過程中可以像新增操作一樣指定列、忽略列,也可以忽略空列;如果指定了set條件更新,setsource實體更新會失效

var student = new student ;

_freesql.update()

.setsource(student)

.executeaffrows();

//update [student] set [name] = @p_0, [age] = @p_1, [status] = @p_2, [addtime] = @p_3, [remark] = @p_4 where([id] = 1)

_freesql.update()

.setsourceignore(student, x => x == null)//忽略空列

.executeaffrows();

//update [student] set [name] = @p_0, [age] = @p_1, [status] = @p_2, [addtime] = @p_3 where([id] = 1)

與新增一樣,修改操作可以指定要修改的字段或不要修改的字段,從而使修改操作更靈活

var student = new student ;

_freesql.update()

.setsource(student)

.updatecolumns(a => a.name)

.executeaffrows();

//update [student] set [name] = @p_0 where([id] = 1)

_freesql.update()

.setsource(student)

.ignorecolumns(x => new )

.executeaffrows();

//update [student] set [name] = @p_0, [addtime] = @p_1, [remark] = @p_2 where([id] = 1)

自定義set中更新字段,直接指定需要更新的字段,給我的直觀感受就是類似於引數化sql語句

_freesql.update()

.setraw("name=@name,age=@age", new )

.where("id=@id", 1)

.executeaffrows();

//update [student] set name=@name,age=@age

//where (id=@id)

將自定義實體傳如update(),根據實體拼接修改字段,如果實體中字段與dto中字段不匹配,則忽略掉不匹配字段,有了dto更新就不用在new乙個實體物件了

FreeSql學習筆記 1 入門

學習過程中,使用的是.net 5 webapi專案,資料庫使用的是sql server,主要會整理下常用的api,現在就開始吧 先選擇乙個webcoreapi專案進行建立,建立完專案後就該引入freesql了 首先引入freesql,根據官方文件的說法得引入乙個freesql包和乙個資料庫驅動,驅動...

學習筆記6

第七單元 標準的輸出管道命令及for.do.done語句 1.輸出和輸出重定向 a.在i o輸出分為正確的輸出和錯誤的輸出,例如 正確的輸出 root nana pc mnt ls file1 file2 file3 file4 file5 錯誤的輸出 root nana pc mnt sadfsa...

學習筆記6

mysql 的常用命令 1.create database name 建立資料庫 create 內部命令 mysql create database 資料庫名 2.use databasename 選擇資料庫 use 內部命令 mysql use 資料庫名 3.drop database name ...