EF 拉姆达 linq if else (整理)】的更多相关文章

首先想到: var data0 = db.T_Plants2; //这里加.AsQueryable() ) { .Where(d => d.NaturalEcosystem == true); } else { .Where(d => d.BuiltUpArea == true); } .Select(d => new { AnimalID = d.PlantID, Species = d.Species, }).ToList(); 然而以上想法的结果是不正确的! 正确方式: 一.纳姆达…
(这个类是很早以前在网上找的,忘记出处请原谅.) 一.基本用法 [Route("List")] public ApiResult GetList(int page, int limit, string sort = null, string order = null, string filters = null, string query = null) { PageModel p = new PageModel(); if (filters != null) { p.filters…
EF 动态拼接查询语句 using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Linq.Expressions; using System.Security.Cryptography; using System.Text; namespace Aliexpress.Common.CommonHelper { //public static class Pre…
SqlSugar支持拉姆达表达式查询,匿名对象参数等,相对还是比较方便好用的. 一.查询列表: //查询列表 SqlSugarClient db = SugarContext.GetInstance(); List<teacher> tList = db.Queryable<teacher>().ToList(); Console.WriteLine(tList.Count); var studentDynamic = db.Queryable<student>().T…
在C#中,如果要实现两个列表的左链接查询,我们的一般用法就是用的linq表达式就是 List<Pet> pets = }, }, } }; List<Pet2> pets2 = new List<Pet2>{ new Pet2 { Name="Barley", Sex = "男" }, new Pet2 { Name="Boots", Sex = "男"}, }; var list2 = f…
有时候,我们需要封装一组数据,只有数据,没有方法,并且只用于当前程序,不需要在项目间重用,这时候,如果是传统的使用类来封装的话,大概会是下面这种样子: internal class SomeData { //定义一系列私有成员变量 //创建属性来封装每一个数据成员 //重写方法的ToString()来输出每一个数据成员 //重写GetHashCode() 及Equals()来实现基于值的相等性 } 这个虽然不难,但如果数据量比较多,显然写起来就比较麻烦了.因此,C#3.0以后提供了一个叫匿名类型…
  lambdaclass编译器 让我们先看一个简单的拉姆达表达式: x=>x/2 这个表达式的意思是:x为参数,对x进行相应的操作后的结果作为返回值. 通过这个拉姆达表达式,我们可以看到: 这个表达式没有任何类型信息,但这并不代表拉姆达表达式是和类型无关的.在实际运用上,编译器会根据表达式的上下文判断上述x的类型及返回值的类型.例如: using System;using System.Linq;public class LambdaTest{     static void Main() {…
对于拉姆达,许多文章都讲过原理及如何使用,所以这篇文章我主要是摘录我学习过的文字,总结下我自己的学习心得. 什么是拉姆达表达式 "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量.它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式.所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to".Lambda运算符…
前言: 之前小猪曾经分享过自己对C#委托的一点理解 其实在使用委托的过程中我们会大量的使用拉姆达(=>)表达式 介绍: "Lambda表达式"是一个匿名函数,是一种高效的类似于函数式编程的表达式,Lambda简化了开发中需要编写的代码量.它可以包含表达式和语句,并且可用于创建委托或表达式目录树类型,支持带有可绑定到委托或表达式树的输入参数的内联表达式.所有Lambda表达式都使用Lambda运算符=>,该运算符读作"goes to".Lambda运算符的…
上面两种写法是一样的 ,拉姆达表达式也是一种委托, 但引用的是匿名方法…
代码如下: static void Main(string[] args) { ((Action)(async () =>{ var data = await HttpHelper.GetOnStringAsync("http://www.baidu.com"); Console.Write(data); //To work on async function //...... }))(); Console.ReadKey(); } 使用上面那种方式,在拉姆达表达式body内直接…
  首先,我们在DataGrid的URL中加上我们要查询的条件:查询用户名不是“呵呵”的所有用户. <div> <table id="dg" class="easyui-datagrid" style="width: 600px; height: 350px" > <thead> <tr> <th data-options="field:'UserID',width:148,sort…
项目总结:EF操作与Linq写法记录 1.EF引入 新建一个MVC项目之后,要引用EF框架,可以按照以下步骤进行: 1),在Models中添加项目 2),选择Entity Data Model,并重新填写名字 3),选择代码优先之后,选择连接的数据库以及表,之后便生成,此时模型里面的实体就相当于数据库中的表了 2.Linq与一些lambda写法 1).单表查询: using (var db = new DBModel()) { DepartmentList = (from n in db.out…
c# 拉姆达表达式实现List去重 var list = studentlist.OrderByDescending(a => a.CreateDate).ToList(); Console.WriteLine(JsonConvert.SerializeObject(list.Where((x, i) => list.FindIndex(z => z.Id == x.Id) == i)));…
一.函数式接口 函数式接口(functional interface 也叫功能性接口,其实是同一个东西).简单来说,函数式接口是只包含一个方法的接口.比如Java标准库中的java.lang.Runnable和 java.util.Comparator都是典型的函数式接口. Java 8提供 @FunctionalInterface作为注解,这个注解是非必须的,只要接口符合函数式接口的标准(即只包含一个方法的接口),虚拟机会自动判断, 但 最好在接口上使用注解@FunctionalInterfa…
拉姆达表达式常用于委托,也就是说拉姆达表达式是匿名函数,简单点就是函数. a => a.Equals("string"); //原形为: (a) => { return a.Equals("string");} //相当于equals函数: public bool equals(string a) { return a.Equals("string"); }可创建委托:(三者等效) Func<string, bool> d…
linq的条件语句尽量不要出现计算的式子,要不然很可能,程序不能正确的将这些复杂的式子编译成表达式!! 例如: dataContext.Assets.Count(s => s.SubCategory.Id == ‘这里最好是一个变量,不要出现表达式’)…
回到目录 眾所周知,在linq to entity的查询语句中,不允许出现ef不能识别的关键字,如Trim,Substring,TotalDays等.net里的关键字,在EF查询里都是不被支持的,它的原因可能是为了更好的提高查询的性能吧,毕竟,好的性能取决于你的程序标准,有了一个严格的标准,才能设计出好的程序来. 今天主要说一下,EF为日期方法留的一个后门,<后门>这个词大家在中国社会都应该知道了,顾名思义,就是反着原则走,你的原则对我没有用,哈哈!这东西有时候是有用的,因为在大的原则下,很可…
话不多说,先上实体类,如果你不是codefirst,就把它当成数据表结构. 下面是底层BaseDal获取数据的方法  (如果你没有Base类,直接写在你的DAL层和BLL层) 下面是BaseService的方法 下面方法用于拼接字符串 主体方法-- /// <summary> /// 得到****TreeGrid****的Json ,后台用于管理页面 /// </summary> public string GetAllLeftMenu4TreeGridJson() { Strin…
EF使用linq进行多表查询是完全可以的,最后ToList()调用的时候回产生一条分页的sql语句,所以并不是全部查询再分页的.所以不会影响查询的性能 public void TestLinq() { var a = from m in DbContext.Set<T1>() join q in DbContext.Set<T2>() on m.ID equals q.ID select m; a.OrderBy(m=>m.Phone_User).Skip().Take().…
1.LINQ 函数   1.1.查询结果过滤 :where() Enumerable.Where() 是LINQ 中使用最多的函数,大多数都要针对集合对象进行过滤,因此Where()在LINQ 的操作上处处可见,Where()的主要任务是负责过滤集合中的数据:其原型如下:       public static IEnumerbale<TSouce> Where<TSource>(this IEnumerable<Tsource> source,Func<TSou…
在使用EntityFramework开发时,.NET的System.Linq.Enumerable类为我们提供了许多Linq方法. 给大家分享一下关于First.FirstOrDefault.Single.SingleOrDefault几个方法的区别实例及使用场景,首先是关于这几个方法的定义: ● First:返回序列中的第一条记录,如果没有记录,则引发异常. ● FirstOrDefault:返回序列中的第一条记录,如果没有记录,则返回默认值(List<int> 返回0, List<s…
在使用EF时,想要比较字符串类型的日期时,参考以下: SQL语句: 1)select * from TableName where StartTime > ‘2015-04-08‘ 2)select * from TableName where StartTime >= ‘2015-04-08‘ 3)select * from TableName where StartTime < ‘2015-04-08‘ 4)select * from TableName where StartTim…
1. 查询Student表中的所有记录的Sname.Ssex和Class列.(select sname,ssex,class from student) Students.Select(s=> new { sname=>s.sname,ssex=>s.ssex, class=>s.class})linq:from s in Students select new{s.sname, } 2.查询教师所有的单位即不重复的Depart列.select distinct depart fr…
public static class DynamicLinqExpressions { public static Expression<Func<T, bool>> True<T>() { return f => true; } public static Expression<Func<T, bool>> False<T>() { return f => false; } public static Expressi…
public static class PredicateBuilder { /// <summary> /// 机关函数应用True时:单个AND有效,多个AND有效:单个OR无效,多个OR无效:混应时写在AND后的OR有效 /// </summary> /// <typeparam name="T"></typeparam> /// <returns></returns> public static Expre…
//国家 var entityCountriesList = aliexpressEntities.SYS_CourierCode.Where(whereSelect.Compile()).GroupBy(p => p.ToCountries).OrderByDescending(c => c.Count()).Select(c => c.Key + "(" + c.Count() + ")").Distinct().ToList();…
总结:Lambda表达式的语法:(参数列表=>执行语句) 无参数格式 :()=>{执行语句} 有参数格式:x=> x % 2 == 0 1.假设给我们一个泛型对象List<T>,T为int类型,要求我们使用该对象方法FindAll(Predicate<T> match)从中找出该List中的偶数,您如何实现? 说明一下:Predicate<T>是一个泛型委托,它的原型为public delegate bool Predicate<T>(T…
五.递归函数 什么叫递归(recusive)? 你拿两个镜子互相面对着, 然后去看镜子, 会发现每个镜子中很多个镜子, 层层的嵌套, 无穷尽, 这就是一种递归! 从前有坐山, 山里有座庙, 庙里有个老和尚在给小和尚讲故事: 从前有座山.... 如果你小的时候被人忽悠听过这个故事, 这个故事是递归! 计算机机中的递归是指: 一个函数在内部自己调用自己, 这就叫函数的递归调用! 就像前面两种情况一样, 如果不发生点意外, 比如一个镜子被拿走了, 或者老和尚挂了, 则递归无穷尽. 函数递归一样, 也要…
连续两次被相同问题困扰. 一.举例 var query=db.StudentScore.Where(r=> r.SubjectId==subjectId).Select(g=>new {SubjectId=SubjectId,Score=g.Score}).ToList();   这是一段平常的代码,但有时候他会报错:匿名类无法转换为实体类StudentScore.   1期初,我是这么想的:  new StudentScore var query=db.StudentScore.Where(…