Update data
SQLBuilder
Single-row update
Standard UPDATE:
c#
cc += kit.setTable("ZH_PortCell")
.set("PC_X", cell["x"].ToString())
.set("PC_Y", cell["y"].ToString())
.set("PC_W", cell["w"].ToString())
.set("PC_H", cell["h"].ToString())
.where("ZH_PortCellOID", fk)
.doUpdate();Join update
UPDATE ... FROM style.
TIP
SQL Server vs MySQL: MySQL only supports UPDATE with INNER JOIN; SQL Server allows broader join forms.
c#
kit.set("C_Year", "2022")
.set("C_EndTime", DateTime.Now)
.set("C_TrainType", "p.Po_TrainType", false)
.set("C_Days", "p.Po_Day", false)
.set("C_PlanTotal", "(select SUM(d.Pa_PlanTotal) from PX_PostClassDe as d where PX_Class_FK=PX_ClassOID)")
.setTable("c")
.from("PX_Class as c left join PX_PostClass p on c.PX_PostClass_FK=p.PX_PostClassOID")
.where("c.PX_ClassOID in ('" + newDassOIDs + "')")
.doUpdate();Repository
One entity
c#
_sysRegionRep.Update(new SysRegion());Many entities
c#
_sysRegionRep.UpdateRange(new SysRegion());SQLClip
- Uses entity types
- Conditions via expressions
- No magic SQL strings
Basic
c#
var cc= clip.setTable<UCMLClassDataSet>(out var u)
.set(() => u.ChineseName, "caption")
.set(() => u.ClassName, "name")
.where(() => u.UCMLClassOID, 1)
.doUpdate();Generated SQL:
sql
update UCMLClassDataSet set ChineseName = 'caption',ClassName = 'name' where ( a.UCMLClassOID = 1 )Shortcut
c#
var demoOID = Guid.Empty.ToString();
var cc = kit.modifyBy<HHDutyItem>((c, d) =>
{
c.set(() => d.Di_Name, "name")
.set(() => d.Di_Code, "001")
.where(() => d.HH_DutyItemOID, demoOID);
});