db.SqlQueryable只支持简单查询的Sql不能是存储过程和一些特殊逻的Sql,复杂特殊SQL请看文档 【原生Sql】
注意: order by写外面
int total=0; var list = db.SqlQueryable<Student>("select * from student") .Where(it=>it.Id==1)//可以表达式 .OrderBy("id asc")//也可以SQL .ToPageList(1, 2,ref total); //使用in var list2= db.SqlQueryable<Student>("select * from student where id in (@ids) ").AddParameters(new SugarParameter[] { new SugarParameter("@ids", new int[] { 1, 2 }) }) .OrderBy("id asc") .ToPageList(1,2); //当我们不需要分页等操作时,请使用db.Ado.SqlQuery,这个功能支持的更全面 var list = db. Ado.SqlQuery<Student>("复杂Sql或者存储过程");
var list= db.SqlQueryable<Student>("select * from student").Where(it=>it.Id==1).ToPageList(1, 2);
var list= db.SqlQueryable<Student>("select * from student").Where("id=@id",new { id=1}).ToPageList(1, 2); //如果多个参数 new { id=1 , name="xx"} 用逗号隔开
var list = db.SqlQueryable<Student>("select * from student where id=@id").AddParameters(new { id=1}).ToPageList(1, 2, ref total); //如果多个参数 new { id=1 , name="xx"} 用逗号隔开
AddParameters 有很多重载
ISugarQueryable<T> AddParameters(object parameters);
ISugarQueryable<T> AddParameters(SugarParameter[] parameters);
ISugarQueryable<T> AddParameters(List<SugarParameter> parameters);
var list= db.SqlQueryable<object>("select * from student").Where("id=@id",new {id=1 }).ToDataTablePage(1, 2);
var list= db.SqlQueryable<object>("select * from [order] where id in(@ids)" ) .AddParameters(new{ids= new int[] { 1,2,3}} )//这儿id需要一个数组 .ToList()
和Dapper中的Query<T,T2>效果一样,可以一维对象变成2维护的
var list=db.SqlQueryable<SQLVO>("select 1 as id,'jack' as name ").ToList(); public class SQLVO { [SugarColumn(IsOwnsOne =true)] public ITEM1 ITEM1 { get; set; }//item1和item2不能有重复字段 [SugarColumn(IsOwnsOne = true)] public ITEM2 ITEM2 { get; set; }//item1和item2不能有重复字段 } public class ITEM1 { public int ID { get; set; } } public class ITEM2 { public string Name { get; set; } }
效果图
2016 © donet5.comApache Licence 2.0