波拉x,厦门益康医院,燃气壁挂炉品牌
// tolinqtodb是必须的 var temp = qry.tolinqtodb().tolist();
var qry = from t1 in db.t from t2 in db.t2.innerjoin(m => m.t1id == t1.id)
var qry = from t1 in db.t from t2 in db.t2.leftjoin(m => m.t1id == t1.id)
var qry = from t1 in db.t from t2 in db.t2.rightjoin(m => m.t1id == t1.id)
// 相比于原来linq,简洁了很多。 var qry = from t1 in db.t from t2 in db.t2.leftjoin(m => m.t1id == t1.id) select sql.ext.sum(t1.type == "a" ? t1.number * (t1.saleprice-t2.originalprice) : 0).tovalue();
//我要查t2中不重复的 t1的id有多少个 var qry = from t1 in db.t from t2 in db.t2.leftjoin(m => m.t1id == t1.id) where t1.some=='' group new {t1,t2} by t2.some into g select new { //相当于sql count(distinct t2.t1id) number = g.countext(m => m.t2.t1id, sql.aggregatemodifier.distinct) }
var qry = from t1 in db.t where t1.saledate > begintime group t1 by sql.datepart(sql.dateparts.month, t1 .saledate) into g select new { month = g.key, flowamount = g.sum(m => m.saleway == "a" ? sql.abs(m.number * m.saleprice) : 0) - g.sum(m => m.saleway == "b" ? sql.abs(m.number * m.saleprice) : 0) };
当然还有更多的扩展方法,分别位于
包含于 sql , sql.ext,analyticfunctions 中
linq2db文档 :
//因为他是幂等的 ,所以可以多次运行 linqtodbforeftools.initialize();
// fast insert big recordsets ctx.bulkcopy(new bulkcopyoptions {...}, items); // query for retrieving products that do not have duplicates by name var query = from p in ctx.products from op in ctx.products.leftjoin(op => op.productid != p.productid && op.name == p.name) where sql.tonullable(op.productid) == null select p; // insert these records into the same or another table query.insert(ctx.products.tolinqtodbtable(), s => new product { name = s.name ... }); // update these records by changing name based on previous value query.update(prev => new product { name = "u_" + prev.name ... }); // delete records that matched by query query.delete();
如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复
Blazor server side 自家的一些开源的, 实用型项目的进度之 CEF客户端
.NET IoC模式依赖反转(DIP)、控制反转(Ioc)、依赖注入(DI)
vue+.netcore可支持业务代码扩展的开发框架 VOL.Vue 2.0版本发布
网友评论