批量打包Sql

对性能极限追求的朋友,或者喜欢 工作单元统一事务提交的朋友可以用下面的方法,我们可以把要执行的语句添加到上下文队列,后然打包成一个SQL一次性请求返回结果

//4.9.9.5 版本才支持
var db = GetInstance();
db.Insertable<Student>(new Student() { Name = "a" }).AddQueue();
db.Insertable<Student>(new Student() { Name = "b" }).AddQueue();
db.SaveQueues();//将2条插入一起执行带有事务,如果外部有事务会走外部事务,外部没事务会走内部事务

db.Insertable<Student>(new Student() { Name = "a" }).AddQueue();
db.Insertable<Student>(new Student() { Name = "b" }).AddQueue();
db.Insertable<Student>(new Student() { Name = "c" }).AddQueue();
db.Insertable<Student>(new Student() { Name = "d" }).AddQueue();
var ar = db.SaveQueuesAsync();//打包执行异步处理
ar.Wait();


db.Queryable<Student>().AddQueue();
db.Queryable<School>().AddQueue();
var result = db.SaveQueues<Student, School>();//打包查询

db.Queryable<Student>().AddQueue();
db.Queryable<School>().AddQueue();
db.AddQueue("select @id", new { id = 1 });//支持手写SQL打包
var result2 = db.SaveQueues<Student, School, int>(); //注意sqlite 不支持int类型只支持表









































































收藏到朋友圈: