医生orm之count、where的若干问题
ps:先讲一个笑话
话说医生orm的生成工具的源码价值10RMB,这是什么概念呢?是在4环附近请医生吃一碗兰州拉面,在6环吃两碗,如果在1环请呢?医生在找我10rmb,所以大家还是在一环请他吃饭吧,买它工具转账什么的太麻烦了,让他带上工具源码+10rmb来一环。。。。。。。。。。。。。。。。。。。。。。
上周看看了看简单的基本操作,剩下就是where、group、count、delete 等常用操作
相关的基本的sql和model见:http://www.cnblogs.com/qqloving/archive/2012/10/28/2743269.html
医生的 where and or 简直就是琵琶,建议医生做个demo出来走两步,让大家围观一下
我的文章在注释里面!
Delete的demo
医生的dele操作没有逻辑删除字段是在是欠妥,应该加一个逻辑删除和物理删除的
protected void Page_Load(object sender, EventArgs e)
{
SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo();
EntityQuery<SuperMarket.userinfo> query2 = new EntityQuery<SuperMarket.userinfo>(objuserinfo, true);
//根据id删除
objuserinfo.id = 37;
int flag = query2.Delete(objuserinfo);
Response.Write(flag);
//话说根据一个where条件批量删除该怎么弄呢?
}
count的demo
protected void Page_Load(object sender, EventArgs e)
{
SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo();
EntityQuery<SuperMarket.userinfo> query2 = new EntityQuery<SuperMarket.userinfo>
(objuserinfo, true);
OQL Query = new OQL(objuserinfo);
OQL result = Query.Select().Count(objuserinfo.id, "id").END;
//ps 由于不知道医生这个orm暂时如何查询偶返回第一行第一列
// 但医生的orm的对应关系,你懂得,这就是知道原理的好处。。。。。。。。。。。。。。
// 弱弱的问一下医生,如果写下面的代码????????????????
SuperMarket.userinfo objuserinfo2 = EntityQuery<SuperMarket.userinfo>.QueryObject(result);
Response.Write(objuserinfo2.id);
}
group 的demo
protected void Page_Load(object sender, EventArgs e)
{
SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo();
EntityQuery<SuperMarket.userinfo> query2 = new EntityQuery<SuperMarket.userinfo>
(objuserinfo, true);
OQL Query = new OQL(objuserinfo);
OQL myusery = Query.Select(objuserinfo.username).GroupBy(objuserinfo.username).END;
//话说这个地方,我怎么知道一个 oql 是返回一个list 还是一个model???还是一个 int。。。。。
//
List< SuperMarket.userinfo> objuserinfo2 = EntityQuery<SuperMarket.userinfo>.QueryList(myusery);
foreach (SuperMarket.userinfo item in objuserinfo2)
{
Response.Write(item.username+"</br>");
}
}
where and or 的demo
protected void Page_Load(object sender, EventArgs e)
{
///////
// PS 吐槽一下,每一个查询,都要实例化这三个东西,是不是有点多余??。。。。。。。
SuperMarket.userinfo objuserinfo = new SuperMarket.userinfo();
EntityQuery<SuperMarket.userinfo> query2 = new EntityQuery<SuperMarket.userinfo>
(objuserinfo, true);
OQL Query = new OQL(objuserinfo);
///////////
objuserinfo.username = "互联网fans";
OQL Query1 = Query.Select().Where(objuserinfo.username, "=" ).END;
List< SuperMarket.userinfo> test1 = EntityQuery<SuperMarket.userinfo>.QueryList(Query1);
//我去,这种老百姓喜欢的写法竟然不支持,话说这个写法也太奇葩了
// OQL Query1= Query.Select().Where(objuserinfo.username = "互联网fans").END;
//默认应该是and吧
objuserinfo.userpassword="1234567";
OQL Query2 = Query.Select().Where(objuserinfo.username, "=", objuserinfo.userpassword,"=" ).END;
List<SuperMarket.userinfo> test2 = EntityQuery<SuperMarket.userinfo>.QueryList(Query2);
//来一个 or
//是在是太矛盾了 这个地方又要赋值了,无力吐槽了
//OQL Query3 = Query.Select().Where(objuserinfo.username, "=", Query.Condition.OR(objuserinfo.userpassword, "=", "1234567")).END;
//这个方式也不支持。。。。。。。。
OQL Query3 = Query.Select().Where(Query.Condition.OR(objuserinfo.userpassword, "=", "1234567").OR(objuserinfo.username, "=", "互联网fans")).END;
List<SuperMarket.userinfo> test3 = EntityQuery<SuperMarket.userinfo>.QueryList(Query3);
//这个到底是and 还是or 呢?圆方怎么看医生呢?
OQL Query4 = Query.Select().Where(Query.Condition.OR(objuserinfo.userpassword, "=", "1234567").AND(objuserinfo.username, "=", "互联网fans")).END;
List<SuperMarket.userinfo> test4 = EntityQuery<SuperMarket.userinfo>.QueryList(Query4);
//更复杂的 and 和or
//根据不同条件拼接 and 和or
//医生来做个示范动作!
}
TAG: