FreeSql的系列操作:freesql的操作有点类似于linq中的操作,不过freesql的操作是对数据库,但是linq的操作是对集合进行操作
查看官方文档:https://freesql.net/guide/
比如:
[Table("表名")] 如果表名的设置与自己想要关联的表不一致,就会重新给你创建一个新表。
public class 类名
[Column("列名")] 与表中的列名对应,如果没有该列名,也会新建一个列。
public T 字段名
然后再是声明一个FreeSql的实例:
private static IFreeSql freeSqlInstance = new FreeSqlBuilder().UseConnectionString(DataType.SqlServer, "Data Source=.;Initial Catalog=db_test;Persist Security Info=True;uid=sa;pwd=123456;").UseAutoSyncStructure(true).Build();
增:freesql可以直接新增一个对象,按照类中的对应声明并且增加
freeSqlInstance.Insert(对象).ExecuteAffrows();
删:这里因为我是传一个对象过来,所以就用对象表示要删除的字段。
注意:这里的连续操作条件符号一定要:“||”或者“&&”,是这样子重复的,少打一个都会出错
freeSqlInstance.Delete<类名>()
.Where(k => k.字段名1== 对象.字段名1 && k.字段名2== 对象.字段名2&& k.字段名3== 对象.字段名3).ExecuteAffrows();
改:
第一种:把更新的值放在一起,New:表示新对象,Old:表示旧对象
int result = freeSqlInstance.Update<类名>(1).Set(a => new 类名{ 字段名1= New.字段名1, 字段名2= New.字段名2, 字段名3= New.字段名3 })
.Where(a=> a.字段名1== Old.字段名1 && a.字段名2== Old.字段名2&& a.字段名3== Old.字段名3).ExecuteAffrows();
第二种:把更新的值分开
int result = freeSqlInstance.Update<类名>().Set(a => a.Num, New.Num)
.Set(a => a.字段名1, New.字段名1)
.Set(a => a.字段名2, New.字段名2)
.Set(a => a.字段名3, New.字段名3)
.Where(a=> a.字段名1== Old.字段名1 && a.字段名2== Old.字段名2&& a.字段名3== Old.字段名3).ExecuteAffrows();
查:这里举个查询列表的集合。
cabinetList = freeSqlInstance.Select<类名>().OrderByDescending(a => a.字段名).ToList();