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